Django 整体流程

2019-10-08  本文已影响0人  Cui_Shu

|首先创建一个虚拟环境

mkvirtualenv xxx(虚拟环境名称)

安装Django

pip install django==1.11(版本任意)

pip list 查看此环境下所有安装的包

pip freeze 查看此环境下自己安装的包

进入创建好的项目文件夹中(最好是每个项目创建新的文件夹)创建项目

django-admin startproject xxx(项目名称)

进入项目名称文件 cd xxx 创建应用

python3 manage.py startapp xxx(应用名称)

以上在终端已经完成,打开pycharm打开项目更换虚拟环境

完成后打开settings.py文件INSTALLED_APPS中加入创建好的应用

在model创建模型类(对应数据库表)

迁移文件(执行该命令前一定要仔细检查model模型(外键、字段等等)是否完整,不然后面很麻烦)

python3 manage.py makemigrations

python3 manage.py migrate

在项目文件夹下创建templates文件夹

打开settings.py文件在TEMPLATES=[ 'DIRS'=[ ] ]中添加路径os.path.join(BASE_DIR,'templates')

然后url.py-->view.py完成

创建超级管理员

python3 manage.py createsuperuser

admin.py里倒入model

from .models import *

admin.site.register(xxx(模型中创建的类名))

settings.py更改为中国的时间和语言

LANGUAGE_CODE ='zh-hans'

TIME_ZONE ='Asia/Shanghai'

项目下的urls.py文件下导入include在应用下创建一个新的urls.py文件作为每个应用下的正则链接

from django.conf.urlsimport url,include

url(r'^',include('bookapp.urls')),

加载模版

from django.template import loader

在功能函数中加载模版

t = loader.get_template('html文件名(template下绝对路径)')

from django.db.models import F,Q

F对象字段与字段之间的比较

application:

创建模型类的时候思考是否需要添加字段:isdelete,index索引为了以后的排序。

有特殊的需求时,自定义管理器

url关键字参数:url(r'^xxx/(?P<id>\d+)/$',view.xxx),  <>里的参数要和view.xxx函数中形参一样

错误内容 404 500 自定义内置错误模板:settings.py debug=False ALLOWED_HOSTS = [ " * " ]

HttpRequest:

GET:    取出来的是一个类字典,可能会出现一键多值的情况

Cookies:在浏览器中储存

Session:在服务器中储存

Session依赖Cookies 

 所有类字典对象都要用get去取值,因为这样可以减少报错的几率,还可以添加默认值

包含查询:BookInfo.objects.filter(btitle__contains=xx)

HttpResponse

response  = render(request,'xxx.html')

response.set_cookie()     # 将数据存入cookie

cookie存在浏览器中 以键值对的方式

根据域名存储 每个域下都有自己的cookie 互不干扰

key:键   value:值

max——age:指定多少秒过期

expires:指定具体时间过期

cookie默认过期时间是 关闭浏览器就过期

在项目目录下创建静态文件夹static

static文件夹下有css\js\image...

在settings.py下写入:

STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

view---->排序:order_by('xxx').all

时间过滤器:{{ xxx.xxx | data:'Y-m-d' }}    ------->只显示年月日

{% forloop.counter %} : 1,2,3,4,5

上传图片:

image = models.ImageField(upload_to=' 应用名/ ')

settings.py中添加 :

MEDIA_ROOT = os.path.join(BASE_DIR,'应用名称/static/media/')

html文件中image标签中的路径要改成:

<img src='/static/media/{{ xxx.xxx }}'>  

html转义:{{ xxx | safe }}

装饰器:

from django.views.decorators.csrf import csrf_exempt

反向解析:

项目urls.py :

url(r'^',include('booktest.urls',namespace='booktest')),

应用urls.py:

url(r'^fan2/$', views.fan2,name='fan2'),

html下:

{% url 'booktest : fan2' %}

静态文件在模板中使用反向解析:

{ % load staticfromstaticfiles %}

<img src="{ % static "my_app/myexample.jpg" %}"alt="My image"/>

model类中的自关联:

parent =  models.ForeignKey( 'self',null = True,blank = True )

ajax:

先导入JsonResponse

def getP(request):

    p = Xxxx.objects.filter(xxx__isnull = True).values()   注意加上values()

    return JsonResponse({'data' : list(p)})   注意字典中的值需要转成列表

密码加密解密https://www.cnblogs.com/monsteryang/p/9565334.html

自定义过滤器配置https://blog.csdn.net/weixin_41502742/article/details/80717685

xx

上一篇下一篇

猜你喜欢

热点阅读