1.Django特点及环境的安装
特点:
重量级框架
Django原生提供了众多的功能组件,让开发更简便快速
MVT模式
Model
负责和数据库交互,进行数据处理
View
接收请求,进行业务处理,返回应答
Template
负责封装构造要返回的html
环境安装
创建虚拟环境
mkvirtualenv django_py3_1.11 -p python3
安装Django1.11.11版本
pip install django==1.11.11
相关命令回顾
虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
pip
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖包
pip freeze # 冻结当前环境的依赖包
2.使用pycharm运行代码
1.创建工程
创建
django-admin startproject 工程名称
目录
settings.py是项目的整体配置文件。
urls.py是项目的URL配置文件。
wsgi.py是项目与WSGI兼容的Web服务器入口。
manage.py是项目管理文件,通过它管理项目。
运行开发服务器
python manage.py runserver ip:端口
python manage.py runserver
2.创建子应用
创建
python manage.py startapp 子应用名称
目录
admin.py文件跟网站的后台管理站点配置相关。
apps.py文件用于配置当前子应用的相关信息。
migrations目录用于存放数据库迁移历史文件。
models.py文件用户保存数据库模型类。
tests.py文件用于开发测试用例,编写单元测试。
views.py文件用于编写Web应用视图。
注册安装子应用
子应用名.apps.子应用名首字母大写Config
注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。
如果不安装,在数据迁移的时候不能迁移
3.模型
数据库开发的步骤
定义模型类,根据数据库表的设计,在models.py
中定义模型类,继承自models.Model
创建相关的表的信息 :
from django.db import models
# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
# 创建字段,字段类型...
name = models.CharField(max_length=10)
# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
name = models.CharField(max_length=10)
gender = models.BooleanField()
# 外键约束:人物属于哪本书
book = models.ForeignKey(BookInfo)
模型迁移
生成迁移文件
python manage.py makemigrations
执行迁移
python manage.py migrate
操作数据库
管理员后台操作
4.站点管理
界面管理
语言设置
时区设置
创建管理员
命令
python manage.py createsuperuser
重置密码
python manager.py changepassword 用户名
python / wpb666888
注册模型类
1.导入模型模块
from .models import BookInfo,PeopleInfo
2.注册模型
admin.site.register(表名)
在模型里重写str方法
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
# 创建字段,字段类型...
name = models.CharField(max_length=10)
def __str__(self):
"""将模型类以字符串的方式输出"""
return self.name
5.视图和url
1.定义视图
视图就是一个Python函数
视图的第一个参数是HttpRequest类型的对象reqeust
视图必须返回HttpResponse对象
需要导入HttpResponse模块
2.配置URLconf
查找视图的过程:
5.如果所有的URLconf都没有匹配成功.则返回404错误.
URLconf入口 :settings中
urlconfig的配置
1.在项目中定义URLconf
2.在应用中定义URLconf
URL匹配过程
可以访问
6.模版
1.创建模版:
应用
同级目录下创建模板文件夹templates
. 文件夹名称固定写法.templates
文件夹下, 创建应用
同名文件夹. 例, Book
在应用
同名文件夹下创建网页模板
文件. 例 :index.html
2.设置模板查找路径
[os.path.join(BASE_DIR, 'templates')]
3.模板接收视图传入的数据
4.模版处理数据
context传入到模版
7.配置文件和静态文件
settings的配置文件
1. BASE_DIR:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
当前工程的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路径
1.__file__表示当前的文件settings.py
2.os.path.abspath(__file__)获取的是文件的绝对路径
3.os.path.dirname(os.path.abspath(__file__))表示获取文件的文件夹路径
4.os.path.dirname(os.path.dirname(os.path.abspath(__file__)))表示上一级文件夹路径
注意点
我们工程中的所有文件都是以base_dir为根目录
2. DEBUG:调试模式,创建工程后初始值为True,即默认工作在调试模式下
作用:
修改代码文件,程序自动重启
Django程序出现异常时,向前端显示详细的错误追踪信息
DEBUG = True
测试模式
注意:部署线上运行的Django不要运行在调式模式下,记得修改DEBUG=False和ALLOW_HOSTS
3. 本地语言与时区:将语言和时区修改为大陆信息:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
4.静态文件:项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理
在bookmanager/settings.py中修改静态文件的两个参数
STATICFILES_DIRS存放查找静态文件的目录
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_URL访问静态文件的URL前缀
STATIC_URL = '/static/'
例如:
1) 在项目根目录下创建static目录来保存静态文件。
2) 在bookmanager/settings.py中修改静态文件的两个参数为
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
3)此时在static添加的任何静态文件都可以使用网址/static/文件在static中的路径来访问了。
例如,我们向static目录中添加一个index.html文件,在浏览器中就可以使用127.0.0.1:8000/static/index.html来访问。
或者我们在static目录中添加了一个子目录和文件book/detail.html,在浏览器中就可以使用127.0.0.1:8000/static/book/detail.html来访问。
8.数据库的配置
settings文件修改
使用mysql
工程的init中
import pymysql
pymysql.install_as_MySQLdb()