Django介绍
django 是python web 开发中常用的一个框架,它的设计目的是让普遍的web开发变得容易快捷,除了django框架,还有一个轻量级的web 框架flask 。在web领域flask好比一个毛坯房,django好比一个精装修房
环境准备
- 安装python 这里我们使用python3 , 除了python3可以在Django中使用哪个Python版本?请看下表
- 安装Django 这里我们安装Django1.11.1
pip3 install Django == 1.11.1
- 验证
编写第一个django应用
命令行执行
django-admin startproject mysite
⚠️注意
- 您需要避免使用内置的Python或Django组件来命名项目。特别是,这意味着您应该避免使用类似 django(与Django本身冲突)或test(与内置Python包冲突)之类的名称。
- 如果您的背景是使用简单的老式PHP(不使用现代框架),则可能习惯于将代码放在Web服务器的文档根目录下(例如/var/www)。使用Django,您无需这样做。将任何这些Python代码放在Web服务器的文档根目录中不是一个好主意,因为这冒着人们可能通过Web查看您的代码的风险。这对安全性不利。将代码放在文档根目录之外的某个目录中,例如 /home/mycode。
让我们看看startproject创建了什么:
在这里插入图片描述
下面来介绍下这些目录:
- 外部mysite根目录 :这是一个项目容器,可以命名成您喜欢的任意名字
- manage.py:命令行实用程序,您可以实用它与盖django项目进行交互
- 内部mysite/目录:项目的实际Python包,您可以实用它导入项目中的任何内容(例如mysite.urls)
- mysite/init.py:一个空目录,告诉python 该目录是一个python包
- mysite/settings.py:项目的配置文件
- mysite/urls.py:项目的url申明
- mysite/wsgi.py:与WSGI兼容的Web服务器
启动项目:
执行 python3 manage.py runserver
那行报错是因为未应用数据库迁移,暂时忽略
浏览访问http://localhost:8000 ,当您看到以下界面时说明服务已经启动成功
说明:
- 执行python3 manage.py runserver启动的服务是纯粹用Python编写的轻量级Web服务器,供开发时使用,不要在类似于生产环境的任何环境中使用此服务器
- 如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口8080上启动服务器:
python3 manage.py runserver 8080
- 果要更改服务器的IP,请将其与端口一起传递。例如,要侦听所有可用的公共IP(如果您正在运行Vagrant或想在网络上的其他计算机上炫耀您的工作,则很有用),请使用:
python3 manage.py runserver 0:8000
4.关于自动重新加载:开发服务器会根据需要自动为每个请求重新加载Python代码。您无需重新启动服务器即可使代码更改生效。但是,某些操作(例如添加文件)不会触发重新启动,因此在这种情况下,您必须重新启动服务器。
创建应用
-
执行如下命令
python3 manage.py startapp myweb
生成的目录如下 -
创建子路由
-
在主路由中配置子路由的访问路径
将django.conf.urls.include 模块下的include() 导入urlpatterns
说明:
1.include()功能允许引用其他URLconf,
2.include()函数的正则表达式 没有$(字符串末尾的匹配字符)而是斜杠。4.创建视图
5.浏览器访问http://localhost:8000/myweb/
数据库的设置
打开mysite/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myweb',
'USER':'zjj',
'PASSWORD':'zhangjunjie',
'HOST':'localhost',
'PORT':'3306',
}
}
在编辑时mysite/settings.py,将其设置TIME_ZONE为您的时区。
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
默认情况下,INSTALLED_APPS包含以下应用程序,
- django.contrib.admin–管理站点。您将很快使用它。
- django.contrib.auth –认证系统。
- django.contrib.contenttypes –内容类型的框架。
- django.contrib.sessions –会话框架。
- django.contrib.messages –消息传递框架。
- django.contrib.staticfiles –用于管理静态文件的框架。
其中一些应用程序至少使用一个数据库表,因此我们需要在数据库中创建表之后才能使用它们。为此,请运行以下命令:
python3 manage.py migrate
执行它市可能会报错,原因是缺少MySQLdb因此我们需要把它导入,导入之前需要安装(pip3 install pymysql)
再次执行python3 manage.py migrate
查看数据库(这些表已经被创建)
创建模型
我们随便创建两个模型User和Address,User中包含name,age,create_date三个字段;Address 中包含receiver ,addr两个字段
然后执行python manage.py makemigrations 您会看到
再次执行python3 manage.py migrate
说明:
- 运行为这些更改创建迁移python3 manage.py makemigrations
- 运行以将那些更改应用到数据库。python3 manage.py migrate
Django Admin简介
- 首先,我们需要创建一个可以登录到管理站点的用户。运行以下命令:
python3 manage.py createsuperuser
- 输入所需的用户名,然后按Enter。
- 输入邮箱
- 输入密码
启动开发服务器
python3 manage.py runserver
现在,打开Web浏览器,然后转到本地域上的“ / admin /”,例如 http://127.0.0.1:8000/admin/
登录之后您会看到如下界面