框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统
二.MVC和MTV模式MVC就是把web应用分为模型,控制器,视图三层
- 模型负责业务对象与数据库的对象
- 视图负责与用户的交互
- 控制器©接受用户的输入调用模型和视图完成用户的请求
Django的MTV模式本质上与MVC模式没有什么差别,只是定义上有些许不同,Django的MTV分别代表:
- Model(模型):负责业务对象与数据库的对象(ORM)
- Template(模版):负责如何把页面展示给用户
- View(视图):负责业务逻辑,并在适当的时候调用Model和Template
- Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
#安装:
pip3 install django
#1 创建project
django-admin startproject mysite
#2 创建APP
python mannage.py startapp app_name
django-admin startapp app_name
#3 settings配置
TEMPLATES
STATICFILES_DIRS=(
os.path.join(BASE_DIR,"statics"),
)
STATIC_URL = '/static/'
#4 根据需求设计代码
url.py
view.py
#5 使用模版
render(req,"index.html")
#6 启动项目
python manage.py runserver 127.0.0.1:8090
#7 连接数据库,操作数据
model.py
生成同步数据库的脚本:python manage.py makemigrations
同步数据库: python manage.py migrate
清空数据库: python manage.py flush
#8 查询某个命令的详细信息
django-admin.py help startapp
四.Django URL (路由系统)
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表
urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]
参数说明:
一个正则表达式字符串
一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
可选的要传递给视图函数的默认参数(字典形式)
一个可选的name参数
五.Django Views(视图函数)
http请求中产生两个核心对象:
- http请求:HttpRequest对象
- http响应:HttpResponse对象
HTML代码+逻辑控制代码2.逻辑控制代码的组成 2.1变量(使用双大括号来引用变量):
- 语法格式: {{var_name}}
Template和Context对象:
t = Template('Hello, {{ name }}')
for name in ('John', 'Julie', 'Pat'):
print t.render(Context({'name': name}))
模板对象可以重复使用
def current_time(req):
now=datetime.datetime.now()
return render(req, 'current_datetime.html', {'current_date':now})
2.2标签(tag)的使用(使用大括号和百分比的组合来表示使用tag)
-
{% if %} 的使用:
{% if %}标签计算一个变量值,如果是“true”,即它存在、不为空并且不是false的boolean值,系统则会显示{% if %}和{% endif %}间的所有内容
a. 在app中创建templatetags模块(必须的)
b. 创建任意 .py 文件,如:my_tags.py
c. 在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py :{% load my_tags %}
d. 使用simple_tag和filter(如何调用)
e. 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
如果我们想要更改数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books', #你的数据库名称
'USER': 'root', #你的数据库用户名
'PASSWORD': '', #你的数据库密码
'HOST': '', #你的数据库主机,留空默认为localhost
'PORT': '3306', #你的数据库端口
}
}
- django默认你导入的驱动是MySQLdb,可是MySQLdb对于py3有很大问题,所以我们需要的驱动是PyMySQL
- 我们只需要找到项目名文件下的__init__,在里面写入:
import pymysql pymysql.install_as_MySQLdb()



