Django简介
Django简介
1.Django框架简介
MVC和MTV框架
MVC
MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。
Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。
Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。
MTV
Model(模型):负责业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
2.Django常见命令
在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目、启动Django程序、创建新的APP、数据库迁移等。
命令行创建
创建Django项目
一把我们都新建一个文件夹来存放项目文件,切换到这个目录下,启动命令行工具。创建一个名为mysite的Django项目:
django-admin startproject mysite
创建好项目之后,可以查看当前目录下多出一个名为mysite的文件夹,mysite的文件夹目录结构如下:
|--mysite/
|--manage.py
|--mysite/
|--__init__.py
|--settings.py
|--urls.py
|--wsgi.py
启动Django项目
启动项目的时候,需要切换到mysite目录下,执行如下命令:
python manage.py runserver #默认使用8000端口
命令后面还可以指定参数:
python manage.py runserver 8888 #8888为新指定的端口
python manage.py runserver 127.0.0.1:8000 #还可以指定IP和端口,冒号分割
创建APP
一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码。
命令行创建
python manage.py startapp app01
执行命令后,项目目录下多出一个app01的文件夹,目录结构如下:
|--app01/
|-- migrations
|-- __init__.py
|-- __init__.py
|-- admin.py
|-- apps.py
|-- models.py
|-- tests.py
|-- views.py
使用pycharm创建
可以使用PyCharm的manage.py工具来执行命名。在主菜单栏中选择Tools,在下拉菜单中选择Run manage.py task,会出现如下图所示的工具对话框:
在弹出的命令窗口中直接输入下面的命令便可创建app:
startapp app01
使用PyCharm的manage.py工具执行命令时,只用输入命令及参数即可,不再输入python manage.py了。
数据库迁移
python manage.py makemigrations
python manage.py migrate
创建超级用户
python manage.py createsuperuser
输入以上命令后,根据提示输入用户名、邮箱、密码、确认密码。密码的要求至少是八位,不能和邮箱太接近,两次密码需要一致。
pycharm创建
1、菜单栏 File——>New Project...
填写项目保存位置、应用名称。
2、更改setting.py
将 'django.middleware.csrf.CsrfViewMiddleware'注释掉,否则会出现下面的情况。
3、settings.py中的templates 中的DIRS需要检查下是否为空,如果为空,添加上os.path.join(BASE_DIR,'templates')。
这是模板中没有设置,设置模板找到如下图的路径,打开settings.py-tpl,相同位置添加上上os.path.join(BASE_DIR,'templates')。下次创建项目就可不再手动添加。
4、templates文件夹下创建HTML文件。
5、编辑urls.py文件,增加映射关系。
6、编辑views.py,添加视图处理函数。
7、terminal中输入 python manage.py runserver IP:PORT 启动服务
8、局域网中的浏览器输入HTTP://IP:PORT/login 就可访问验证。