初试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:

操作之前:

DATABASES = {
    'default':{
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}

解决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([更新的字段])

原文地址:https://www.cnblogs.com/Oliva/p/12310581.html