Django 框架基础
Posted dbf-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 框架基础相关的知识,希望对你有一定的参考价值。
WEB框架
MVC
Model View Controller
数据库 模板文件 业务处理
MTV
Model Template View
数据库 模板文件 业务处理
Django
安装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中将中间那条注释掉
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.模板渲染
通过特殊的模板语言
- {{ 变量名 }}
views.py:
def func(request):
return render(request, "index.html", {'current_user': "bob"})
index.html:
<body>
<div>{{current_user}}</div>
</body>
最后生成的字符串
<body>
<div>bob</div>
</body>
- For循环
views.py:
def func(request):
return render(request, "index.html", {'current_user': "bob", 'user_list': ['bob','jack']})
index.html:
<body>
<div>{{current_user}}</div>
<ul>
{% for row in user_list %}
{% if row == "bob" %}
<li>{{ row }}</li>
{% endif %}
{% endfor %}
</ul>
</body>
- 索引
views.py:
def func(request):
return render(request, "index.html", {
'current_user': "bob",
'user_list': ['bob','jack'],
'user_dict': {'k1': 'v1', 'k2': 'v2'}})
index.html:
<body>
<div>{{current_user}}</div>
<a> {{ user_list.1 }} </a>
<a> {{ user_dict.k1 }} </a>
<a> {{ user_dict.k2 }} </a>
</body>
- 条件
views.py:
def func(request):
return render(request, "index.html", {
'current_user': "bob",
"age": 18,
index.html:
<body>
<div>{{current_user}}</div>
{% if age %}
<a>有年龄</a>
{% if age >= 18 %}
<a>成年</a>
{% else %}
<a>未成年</a>
{% endif %}
{% else %}
<a>无年龄</a>
{% endif %}
</body>
以上是关于Django 框架基础的主要内容,如果未能解决你的问题,请参考以下文章