Django框架介绍与安装
1、Web开发
2、Django介绍
官方网址:https://www.djangoproject.com/
安装:pip install Django==2.2.*
3、Django的快速入门
(1)创建项目
如果这是你第一次使用Django,那么你必须要照顾一些初始设置。也就是说,您需要自动生成一些建立Django 项目的代码
从命令行cd到您要存储代码的目录,然后运行以下命令:
1 | $ django-admin startproject myweb |
我们来看看startproject创建的内容:
1 | [root@localhost myweb]# tree |
关于上面自动生成的目录与文件解释如下:
外部myweb/根目录只是一个项目的容器。它的名字与Django无关; 您可以将其重命名为您喜欢的任何内容。
manage.py:一个命令行实用程序,可以让您以各种方式与此Django项目进行交互。你可以阅读所有的细节 manage.py在Django的管理和manage.py。
内部myweb/目录是您的项目的实际Python包。它的名字是您需要用来导入其中的任何内容的Python包名称(例如myweb.urls)。
myweb/init.py:一个空的文件,告诉Python这个目录应该被认为是一个Python包。
myweb/settings.py:此Django项目的设置/配置。 Django设置会告诉你所有关于设置的工作原理。
myweb/urls.py:该Django项目的URL声明; 您的Django动力网站的“目录”。
myweb/wsgi.py:WSGI兼容的Web服务器为您的项目提供服务的入口点。
(2)运行开发服务器
我们来验证您的Django项目的作品。更改为外部myweb目录,如果您还没有,并运行以下命令:
$ python manage.py runserver
注:若当前环境中有两个python环境,可使用python3或python3.8命令来调用3.8的环境,如:
$ python3 manage.py runserver
您将在命令行中看到以下输出:
1 | Performing system checks... |
以上说明已经开始使用Django的开发服务器,这是一个纯粹以Python编写的轻量级Web服务器。 我们将其与Django结合在一起,因此您可以快速开发,而无需处理配置生产服务器(如Apache),直到您准备好生产。
默认情况下,该runserver命令在端口8000的内部IP上启动开发服务器。当然也可以指定端口开启服务,如8080端口:
1 | $ python manage.py runserver 8080 |
如果要更改服务器的IP,请将其与端口一起传递。例如:
1 | $ python manage.py runserver 0.0.0.0:8000 |
注意:通过IP访问后报如下错误:
1 | DisallowedHost at /polls |
(3)应用的创建
Django自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。
要创建您的应用程序,请确保您与目录位于同一目录,manage.py 并键入以下命令:
1 | $ python manage.py startapp myapp |
注:若当前环境中有两个python环境,可使用python3或python3.8命令来调用3.8的环境,如:
$ python3 manage.py startapp myapp
这将创建一个目录myapp,其目录如下:此目录结构将容纳轮询应用程序。
1 | [root@localhost demo]# tree myweb/ |
打开文件myapp/views.py 并放入以下Python代码:
1 | from django.http import HttpResponse |
这是Django中最简单的视图。要调用视图,我们需要将其映射到一个URL - 为此,我们需要一个URLconf。
要在myapp目录中创建一个URLconf,创建一个名为urls.py。您的应用目录应该如下所示:
1 | └── myapp |
在myapp/urls.py文件中包含以下代码:
1 | from django.urls import path |
下一步是将根URLconf指向myapp.urls模块。 在 myweb/urls.py添加一条import用于django.conf.urls.include和插入include()的urlpatterns列表,所以你必须:
1 | from django.contrib import admin |
其中include()函数允许引用其他URLconfs。请注意,该include()函数的正则表达式 没有$(字符串匹配字符),而是尾部的斜杠。 每当Django遇到时 include(),它会排除与该点匹配的任何部分,并将剩余的字符串发送到随附的URLconf进行进一步处理。
背后的想法include()是使即插即用的URL变得容易。由于民意调查是在自己的URLconf(myapp/urls.py)中,它们可以被放置在“/ myapp /”下面,或者在“/ fun_myapp /”下面,或者在“/ content / myapp /”或其他路径根目录下,工作。
注:include()当您包含其他网址格式时,您应始终使用。 admin.site.urls是唯一的例外。
您现在已将index视图连接到URLconf中。让它验证它的工作,运行以下命令:
1 | $ python manage.py runserver 0.0.0.0:8000 |
在浏览器中转到http://localhost:8000/myapp/,您应该看到文本"Hello, world. You’re at the myapp index.”
附录:path() 函数介绍
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。
route: 是包含URL模式的字符串。在处理请求时,Django从第一个模式开始,
urlpatterns然后沿列表向下移动,将请求的URL与每个模式进行比较,直到找到匹配的URL。
view: 用于执行与正则表达式匹配的 URL 请求。
kwargs: 视图使用的字典类型的参数。
name: 用来反向获取 URL。
(4)项目的模型
默认情况下,配置使用SQLite。若不使用SQLite作为数据库,则需要额外的设置,例如 USER,PASSWORD和HOST必须加入。
其中ENGINE设置为数据库后端使用。内置数据库后端有:
1 | 'django.db.backends.postgresql' |
注意:Django使用MySQL数据库需要加载 MySQLdb模块,需要安装 mysqlclient,若已经安装请略过。 (Django2.2版本之前我们安装的是pymysql模块,不过现在使用的mysqlclient )
1 | $ pip install mysqlclient |
下载到本地安装:(解决安装中的错误)
执行命令查看python版本与系统位数(32/64位) ``` C:\Users\Administrator>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type “help”, “copyright”, “credits” or “license” for more information.
- 访问网址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
- 下载一个对应的安装包当当前系统目录:
Mysqlclient: a fork of the MySQL-python interface for the MySQL database. mysqlclient‑1.4.6‑pp373‑pypy36_pp73‑win32.whl mysqlclient‑1.4.6‑cp39‑cp39‑win_amd64.whl mysqlclient‑1.4.6‑cp39‑cp39‑win32.whl mysqlclient‑1.4.6‑cp38‑cp38‑win_amd64.whl ✔ mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl
mysqlclient‑1.4.6‑cp37‑cp37m‑win_amd64.whl mysqlclient‑1.4.6‑cp37‑cp37m‑win32.whl mysqlclient‑1.4.6‑cp36‑cp36m‑win_amd64.whl mysqlclient‑1.4.6‑cp36‑cp36m‑win32.whl mysqlclient‑1.4.6‑cp35‑cp35m‑win_amd64.whl mysqlclient‑1.4.6‑cp35‑cp35m‑win32.whl mysqlclient‑1.4.6‑cp27‑cp27m‑win_amd64.whl mysqlclient‑1.4.6‑cp27‑cp27m‑win32.whl
在我们的简单的应用程序中,去创建一个stu表信息操作的Model类。
编辑 myapp/models.py文件
1 | from django.db import models |
要将该应用程序包括在我们的项目中,我们需要在设置中添加对其配置类的引用INSTALLED_APPS。
该 myappConfig班是在myapp/apps.py文件中,所以它的虚线路径’myapp.apps.myappConfig’。
编辑myweb/settings.py文件,并将该虚线路径添加到该INSTALLED_APPS设置。
1 | INSTALLED_APPS = [ |
① 现在进入交互式的Python shell,并使用Django提供的免费API
1 | C:\Users\***\Desktop\code\myweb>python manage.py shell |
配置stu函数的访问路由
#在myapp/urls.py文件中配置
path('stu/', views.stu),
启动服务后,在浏览器中访问,在命令行终端中查看输出效果: http://localhost:8000/myapp/stu