初试django
创建django程序:django-admin startproject [name]
python manage.py runserver
#字符串
return HttpResponse('')
#自动找到模板路径下的html文件,读取内容并返回给用户
return render(request,'[html]')
1.创建project
2.配置
-模板路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'template')],
'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',
],
},
},
]
-静态文件路径
STATIC_URL = '/static/' #前缀
STATICFILES_DIRS=(
os.path.join(BASE_DIR, 'pageStyle'), #逗号很关键不然要报错
)
3.额外配置
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',
]
4.url对应关系
/login/ login
def login(request):
request.method
request.POST ->请求体
request.GET ->请求头中的url中
return HttpResponse()
return render(request, 'login.html', {字典msg})
request redirect('要跳转的网址')
在django里面的h5 from请求中action是把表单数据提交到action里面的网页里面去
所以action里的内容要写网页名称而不能写处理这个请求的函数名称
所以在urls.py中的路由
是指每当访问add-class.html页面时提交给view.py的add_class函数处理
这个时候的add_class就要把用GET和POST请求的方法都考虑到
而asp.nest中MVC :
可以在发起页面请求的时候就考虑GET 和 POST的不同
用post请求的时候可以收到get的传参数
django中有Form组件验证(类似于asp.net mvc中)
vscode加载已有的python环境
母版:
{% extends 'layout.html'%}
{% block name%}
{% endblock%}
一般css js 可以用{%block css/ js%}
cookies扩展签名:
django:
1.路由系统
2.视图函数 cbv, fbv 。class basic view 。 function basic view。
3.ORM operation
在project里面创建app: python manage.py startapp 【name】
sec 网页排名
路由系统:
正则表达式、动态路由
re_path()
伪静态(seo 比重越高)
路由分发:
路由系统之别名反向生成url(可用于 action 和 href的链接)
数据库ORM:
操作之前:
解决django3.0 mysql 不兼容问题:
下载最新的mysqldb 然后
Django根据数据库表反向生成Model:https://blog.csdn.net/diao1057/article/details/98472327
python orm操作:
from appone import models
#新增
models.[tablename].objects.create([字段的值])
#查找
models.[tablename].objects.all()
models.[tablename].objects.filter([条件])
#删除
models.[tablename].objects.filter([条件]).delete()
#更新
models.[tablename].objects.filter([条件]).update([更新的字段])