Django基础学习

目录

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值