1、Django MVT模型
Django采用的是mvt模型,M代表模型,V代表视图,T代表模板
M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
T 代表模板 (Template):负责如何把页面展示给用户(html)。
V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
URL分发器,将URL的页面请求分发给不同的View处理,View再调用相应的Model和Template
2、Django项目和应用
2.1 项目和子应用的创建
# 创建django项目
django-admin.py startproject 工程名
# 创建项目子应用
python manage.py startapp 应用名
# 启动项目
python manage.py runserver [0.0.0.0:8000]
# 默认所有修改过的model层转为迁移文件
python manage.py makemigrations
# 默认将所有的迁移文件都执行,更新生成数据库
python manage.py migrate
# 反向同步mysql的表结构信息
python manage.py inspectdb > models.py
# 创建django用户
python manage.py createsuperuser
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'应用名', #settings.py配置文件上添加应用
]
2.2 子应用url路由配置
├── walden
├── apps
├── users # 应用名
└──urls.py # 子路由
├── walden
├── settings.py #django全局配置文件
├── __init__.py
├── asgi.py
├── wsgi.py
└── views.py # 路由的请求和处理
└── urls.py # 主路由
3、Django的templates配置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # settings.py配置文件上添加目录
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
4、Django请求的处理
4.1 get请求处理
例如:curl http://127.0.0.1:8000?name=123
def helloworld(request):
name = request.GET.get('name') # 获取单个query(?name=123)
#name = request.GET.getlist('name') # 获取多个query(?name=123&name=234)
4.2 post请求处理
<form action="/froms" method="post">
{% csrf_token %} # 用户提交表单时防止跨站攻击所做的保护
<p>姓名:<input type="text" name="name1"></p>
<input type="submit" value="确定">
</form>
<p>{{head}}<p>
from django.shortcuts import render
from django.views.decorators.csrf import csrf_protect
from .forms import nameForm
from django import forms
class nameForm(forms.Form):
name1=forms.CharField()
@csrf_protect # 用户提交表单时防止跨站攻击所做的保护
def fromIndex(request):
if request.method == 'POST': #是否为post请求
form=nameForm(request.POST) # post请求参数的获取
if form.is_valid(): #检查输入是否规范
ans={}
name=form.cleaned_data['name1']
ans['head']=name
return render(request,'from.html',ans)
else:
return render(request,'from.html')
5、Django数据库操作
5.1、数据库连接配置
# 在settings.py配置文件中
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 指明连接数据库的引擎
'NAME': 'db2', # 库名, django 连接的 mysql 数据库库名
'HOST': '192.168.101.10', # 数据库的ip地址,
'PORT': 3306, # 数据库的端口号
'USER': 'root', # 用户名
'PASSWORD': '******' # 密码
}
}
5.2、models.py配置
# 通过命令同步数据库表结构信息到代码
python manage.py inspectdb > models.py
5.3、django数据库表的操作
https://blog.csdn.net/m0_65883616/article/details/125736469
django项目: https://gitee.com/AngDH/hello_django.git
django admin配置:http://t.zoukankan.com/Lovebugs-p-7170814.html
django请求处理:https://zhuanlan.zhihu.com/p/25001794
django数据库操作:https://blog.csdn.net/m0_65883616/article/details/125736469
flask学习:https://blog.csdn.net/shifengboy/article/details/114274271
flask数据库操作:https://blog.csdn.net/bambkk/article/details/124586205
原文地址:https://blog.csdn.net/zorsea/article/details/127918179
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_17183.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。