目录

1、Django MVT模型

2、Django项目和应用

2.1 项目和子应用的创建

 2.2 子应用url路由配置

3、Django的templates配置

4、Django请求的处理

4.1 get请求处理

4.2 post请求处理

5、Django数据库操作

5.1、数据库连接配置

5.2、models.py配置

5.3、django数据库表的操作


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

views.py路由的处理

def helloworld(request):
    name = request.GET.get('name')   # 获取单个query(?name=123)
    #name = request.GET.getlist('name')  # 获取多个query(?name=123&name=234)

4.2 post请求处理

4.2.1 template from.html配置

<form action="/froms" method="post">
    {% csrf_token %}    # 用户提交表单时防止跨站攻击所做的保护
    <p>姓名:<input type="text" name="name1"></p>
    <input type="submit" value="确定">
</form>
<p>{{head}}<p>

4.2.2 views.py路由的配置

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进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注