美文网首页
django简单总结

django简单总结

作者: qianyewhy | 来源:发表于2017-09-11 06:15 被阅读20次

    1、django环境

    2、创建项目和应用

    在D盘新建文件夹pydj,然后cmd进入命令行

    新建项目guest:

    D:\pydj>django-admin startproject guest

    新建应用sign:

    D:\pydj\guest>python manage.py startapp sign

    3、运行项目

    D:\pydj\guest>python manage.py runserver 

    4、在setting.py中配置应用

    在guest/setteing.py中INSTALLED_APPS=[]中添加应用,配置模块应用

    5、配置要访问的URL路径

    在guest/urls.py中urlpatterns=[]中配置要访问的URL路径

    6、在views.py中编写控制前端输出的函数

    7、django工作流程

    1)用户在浏览器地址栏输入URL

    2)django拿到浏览器URL后,取得端口后后面的路径“/index”,在guest/urls.py文件中匹配,即urlpattern列表中

    3)匹配完成后,调用相应函数(views.py中的index视图函数)处理数据

    4)视图层返回的数据由templates模板层展示,即HTML页面

    8、开发模式

    MVC(Model-View-Controller)模式:

    Model 代表数据存取层-----------由django数据库层处理,

    View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分------------由视图和模板处理

    Controller ,根据用户输入委派视图的部分,由Django 框架根据URLconf 设置,对给定URL 调用适当的Python 函数。

    因为Controller由框架处理,django更关注是模型(Model),模板(Template)、视图(views),也被称为MTV开发模式:

    M 代表模型(Model),即数据存取层。该层处理与数据相关的所有事务: 如何存取、如何验证有效

    T 代表模板(Template),即表现层。该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

    V 代表视图(View),即业务逻辑层。该层包含存取模型及调取恰当模板的相关逻辑。你可以把它看作模型与模板之间的桥梁。

    django视图

    9、get请求和post请求

    get请求会将用户提交的数据添加到URL地址中,路径后面跟?username 和password 为HTML 代码中标签的name 属性值,username=admin 表示用户名输入框得到的输入数据为“admin”。password=admin123 密码输入框得到的输入数据为“admin123”。多个参数之间用“&”符号隔开。

    post请求的数据会放在http包的包体中

    “跨站请求伪造”( Cross-Site Request Forgery, CSRF)漏洞

    在from 表单中添加{% csrf_token %}

    10、render()函数

    {{error}}用法

    类HttpResponseRedirect,对路径进行重定向,从而使得登录成功后页面跳转

    render与HttpResponseRedirect的区别是,当使用render转发时,他不会修改url,只是替换页面,所以适合定向到对应的页面中去,常规操作适合,简单,但是不适合转发,不改变url让人很难适应

    11、cookie和session

    cookie存储在客户端(浏览器)

    存储cookie:

    response = HttpResponseRedirect('./event_manage')

    response.set_cookie('user',username,3600)

    user---存入浏览器的cookie名字

    username---用户在登录页上输入的名字

    3600-----cookie在浏览器中停留的时间

    读取cookie:

    username = request.COOKIES.get('user','')

    return render(request,"event_manage.html",{"user":username})

    session存储在服务器端

    存储session:

    request.session['user']=username

    读取session:

    username=request.session.get('user','')

    12、django认证系统

    命令行创建超级用户:

    使用django认证登录

    使用authenticate()函数认证给出的用户名和密码。它接受两个参数,用户名username 和密码password,并在用户名密码正确的情况下返回一个user 对象。如果用户名密码不正确,则authenticate()返回None。

    通过if 语句判断authenticate()返回如果不为None,说明用户认证通过。那么接下来调用login()函数进行登录。login()函数接收HttpRequest 对象和一个user 对象。

    @login_required必须登录才能访问

    django模型

    1、设计系统表

    Django 提供完善的模型(model)层主要用来创建和存取数据,不需要我们直接对数据库操作。

    Django 模型基础知识:

    每个模型是一个Python 类,继承django.db.models.model 类。

    该模型的每个属性表示一个数据库表字段。

    guest/model.py

    发布会表

    嘉宾表

    migration和makemigration的区别:

    在你改动了 model.py的内容之后执行下面的命令:

    python  manger.py makemigrations

    相当于 在该app下建立 migrations目录,并记录下你所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件你可以手动打开这个文件,看看里面是什么

    在此之后执行命令

    python manager.py migrate

    将该改动作用到数据库文件,比如产生table之类

    2、admin管理后台

    3、基本数据访问

    from sign.models import Event,Guest

    导入sign应用下models.py中的Event表和Guest表

    table.objects.all()

    获得table(Event、Guest表)中的所有对象

    table.objects.create()插入数据

    table.objects.get()查询数据

    从数据库表中取得一条匹配的结果,返回一个对象,如果记录不存在的话,那么它会报DoesNotExist 类型错误。

    table.objects.filter()查询数据

    从数据库中取得的结果是一个对象列表,如果记录不存在,返回[]

    name__contains相当于like

    g1.delete()删除数据

    更新数据

    4、MySQL

    查看数据库---show database

    切换库---------use   database

    查看表---------show tables

    相关文章

      网友评论

          本文标题:django简单总结

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