Fork me on GitHub

Django框架 + Djiango安装 + First Djiango + 常用命令

一、Django框架

MVC框架和MTV框架

参考:https://www.cnblogs.com/taosiyu/p/11260016.html

MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。

 

 

想要更详细的了解MVC模式? >> 点我

Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。

Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模板)和View(视图),也就是MTV框架。

Django的MTV模式

       Model(模型):负责业务对象与数据库的对象(ORM)

       Template(模版):负责如何把页面展示给用户

       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

Django框架图示

 

 

 

二、Django安装

参考:https://www.runoob.com/django/django-install.html

https://www.djangoproject.com/download/

 

pip方式安装:

pip install Django

源码安装:

下载源码包:https://www.djangoproject.com/download/

输入以下命令并安装:

tar xzvf Django-X.Y.tar.gz    # 解压下载包
cd Django-X.Y                 # 进入 Django 目录
python setup.py install       # 执行安装命令

安装成功后 Django 位于 Python 安装目录的 site-packages 目录下。

三、First Django

3.1 创建项目

django-admin startproject HelloWorld

项目的目录结构

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

 

Django项目主要文件及其作用

  • manage.py:用来和项目交互的命令行的工具。是对django-admin.py工具的一个简单包装(thin wrapper)。没事儿别动它!
  • mysite/urls.py:网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。存放URL模式的地方,这里定义的每个URL都会被映射为一个view。
  • views.py:处理用户发出的请求,从urls.py中对应过来,通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
  • models.py:与数据库操作相关,存入或读取数据时用到
  • forms.py:表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作
  • templates文件夹:views.py中的函数渲染templates中的Html模板,得到动态内容的网页,可以用缓存来提高速度。
  • admin.py:后台,可以用很少量的代码就拥有一个强大的后台。
  • mysite/settings.py:Django 的配置文件,比如 DEBUG 的开关,静态文件的位置等。
  • mysite/init.py:一空文件,告诉Python把mysite目录看成一个模块。
  • mysite/wsgi.py:配置你的项目,让它作为一个WSGI程序来运行。

 

 

启动服务器

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

python3 manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:

3.2 视图和URL配置

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:

from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world ! ")
HelloWorld/HelloWorld/view.py 文件代码:

 

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

from django.conf.urls import url
 
from . import view
 
urlpatterns = [
    url(r'^$', view.hello),
]
HelloWorld/HelloWorld/urls.py

整个目录结构如下:

$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py              # url 配置
|   |-- urls.pyc
|   |-- view.py              # 添加的视图文件
|   |-- view.pyc             # 编译后的视图文件
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- manage.py

完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

 

 

 我们也可以修改以下规则:

from django.urls import path
 
from . import view
 
urlpatterns = [
    path('hello/', view.hello),
]
HelloWorld/HelloWorld/urls.py

通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:

注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

3.3  path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。

  • view: 用于执行与正则表达式匹配的 URL 请求。

  • kwargs: 视图使用的字典类型的参数。

  • name: 用来反向获取 URL。

Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。

from django.urls import include, re_path

urlpatterns = [
    re_path(r'^index/$', views.index, name='index'),
    re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
    re_path(r'^weblog/', include('blog.urls')),
    ...
]

四 Django常见命令

参考链接:https://www.cnblogs.com/taosiyu/p/11260016.html

Django 基本命令

 

创建项目:

django-admin startproject mysite

启动项目: 启动项目的时候,需要切换到mysite目录下

python manage.py runserver  #默认使用8000端口

命令后面还可以指定参数:

python manage.py runserver 8888  #8888为新指定的端口
python manage.py runserver 127.0.0.1:8000  #还可以指定IP和端口,冒号分割

4.1 创建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了。

 

其它操作:

DJango创建APP、设置settings、模型操作数据库

Django新建app(完整版)

接下来在项目的setting中写入appname

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'myapp.apps.MyappConfig',
    'myapp',                    #添加APP
]

 

  

4.2 删除APP

https://www.lizenghai.com/archives/4165.html

删除models.py

无论是删除单独的model还是删除整个app,都需要首先删除models.py中的模型

  • 确认没有其他文件引用models.py中的类。
  • 迁移或者删除你的数据库,Django提供了简便的方法方便用户删除某App下的所有数据
python manage.py migrate appName zero
  • 删除models.py中的数据模型

删除app

  • 删除整个app文件夹
  • 在settings.py中的Installed apps中删除该app
  • urls.py中删除相关路由信息

 

4.3 数据库迁移

python manage.py makemigrations
python manage.py migrate

4.4 创建超级用户

python manage.py createsuperuser

输入以上命令后,根据提示输入用户名、邮箱、密码、确认密码。密码的要求至少是不八位,不能和邮箱太接近,两次密码需要一致。

 

 

五 settings设置

DJango创建APP、设置settings、模型操作数据库

 

语言时区设置

 

操作数据库的设置

 

创建APP后的设置

 

posted @ 2019-11-01 17:09  RongT  阅读(703)  评论(0编辑  收藏  举报