美文网首页
Django 整体流程

Django 整体流程

作者: Cui_Shu | 来源:发表于2019-10-08 16:00 被阅读0次

    |首先创建一个虚拟环境

    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

    相关文章

      网友评论

          本文标题:Django 整体流程

          本文链接:https://www.haomeiwen.com/subject/yoqdxctx.html