|首先创建一个虚拟环境
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
错误内容 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标签中的路径要改成:
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 %}
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