WEB框架
MVC
Model View Controller
数据库 模板文件 业务处理
MTV
Model Template View
数据库 模板文件 业务处理
Django
Django 请求的生命周期:路由系统(url.py) -> 视图函数(app.views.py)(获取模板+数据->渲染) -> 字符串返回给用户
安装Django模块
点击这里查看安装第三方模块方法
pip install django
创建Django工程
django-admin startproject mysite
[工程名称]
工程目录:
mysite
- mysite # 对整个程序进行配置
- init
- settings # 配置文件
- url # URL对应关系
- wsgi # 遵循WSIG规范,uwsgi + nginx
- manage.py # 管理Django程序:
- python manage.py
- python manage.py startapp xx
- python manage.py makemigrations
- python manage.py migrate
运行Django功能
python manage.py runserver 127.0.0.1:8000
创建app
python manage.py startapp cmdb
[app名称]
app目录结构:
migrations 数据修改表结构
admin Django为我们提供的后台管理
apps 配置当前app
models ORM,写指定的类 通过命令可以创建数据库结构
tests 单元测试
views 业务代码
连接数据库
创建Django工程步骤:
1.创建Django工程
django-admin startproject mysite(工程名)
2.创建APP
cd mysite(进入Django工程所在地目录)
python manage.py startapp cmdb(app名)
3.静态文件路径
在project.settings.py文件最后加上以下代码
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
html文件中导入css/js文件:
<link rel="stylesheet" href="/static/commons.css" />
<script src="/static/jQuery-3.4.0.min.js"></script>
4.模板路径
project.settings.py
'DIRS': [os.path.join(BASE_DIR, 'templates')]
5.settings.py中将中间那条注释掉
刚开始还没有学习到有关CSRF的知识,先不用
点击这里查看CSRF到文章
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
6.定义路由规则
url.py:
导入views:
from cmdb import views
写入地址名对应的函数:
path('url地址', views.views中的函数名),
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
]
7.定义视图函数
views.py:
def func(request):
request.method # 获取提交方式( GET/POST)
# GET提交数据的方式:http://127.0.0.1:8000/home?nid=123&name=bob
request.GET.get('',None) # 获取请求用GET发来的数据
request.POST.get('',None) # 获取请求用POST发来的数据
# 以下使用时需要先导入相应模块
# return HttpResponse("返回字符串")
# return render(request, "返回HTML模板的路径")
# return redirect('/只能填URL')
8.模板渲染
通过特殊的模板语言 Django模版