Django的基础

django
1.wsgi web服务网络接口;python3中接收的是byte类型列表:return [bytes(result, encoding=‘utf-8’)]

def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
userUrl = environ['PATH_INFO']
func = None
for item in url:
    if item[0] == userUrl:
        func = item[1]
        break
if None == func or func == '':
    return [b'HTTP 404']
else:
    result = func()
    '''
    路径对应的方法中返回的结果为string类型
    '''
    if isinstance(result, str):
        return [bytes(result, encoding='utf-8')]
    else:
        '''
        路径对应的方法中返回的结果为读取html文件后的结果
        '''
        return [result]

2.mvc和mtv,django用的是mtv模式
mvc:model,view,contoller
m中:数据库处理
c中:业务处理
v中:html页面
MTV:model,template,view
t中:html页面
v中:业务处理
m中:数据库处理

3.pycharm中生成app目录
H:\my_django>python manage.py startapp web

4.django创建步骤
一、创建app
二、url映射
三、处理url的函数
四、运行django程序:python manage.py runserver
五、访问url网站

5.django2.0版本中url匹配正则表达式需要导入re_path模块

from django.contrib import admin
from django.urls import path, re_path
from web.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', index),
	# 正则表达式匹配需要导入模块:re_path,否则无法识别使用
    re_path(r'manage/(\d*)/', manage),
    path('login/', login),
]

6.默认参数设置。
注:path中的$符号使用后:在输入url路径时,最后缺少“/” 回车时,url会自动补充

re_path(r'login/(?P<name>\w*)/$', login, {'id': 234}),在view中设置
path的默认参数值,后台函数中def login(request, name, id)需要添加id参数

7.url中path路径设置

from django.urls import path, re_path, include
import web

urlpatterns = [
	# include表示会找到web目录下url文件中的path路径
    path('web/', include('web.url')),
]


web.url如下:

from django.contrib import admin
from django.urls import path, re_path
from web.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', index),
    # 匹配正则表达式需要导入模块re_path
    re_path(r'manage/(\d*)/', manage),
    re_path(r'login/(?P<name>\w*)/(?P<id>\d*)/$', login),
    re_path(r'login/(?P<name>\w*)/$', login, {'id': 234}),
]

8.关联数据库的操作
1.创建数据库
2.配置文件setting里连接数据库
3.创建model,继承自models.Model类
静态字段 = models.CharField(max_length=50)
4.生成数据库表的命令:
python manage.py makemigrations
python manage.py migrate

5.修改model

6.再执行步骤4即可

9.设置数据库表列的默认值
age = models.IntegerField(default=19)
gender = models.BooleanField(default=False)
memo = models.TextField(default=‘是’)
date = models.DateField(default=‘2019-12-12’)

10.设置数据库的外键
UserType为关联的数据表,关联的为主键
type_id为当前表中添加的外键
type_id = models.ForeignKey(‘UserType’, on_delete=models.SET_DEFAULT, default=1)

11.设置数据库的多对多关系
设置后会自动生成一个多对多的关系表

class Group(models.Model):
name = models.CharField(max_length=20)

class User(models.Model):
email = models.CharField(max_length=40)
group_relation = models.ManyToManyField('Group')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值