Django学习日记1

    xiaoxiao2021-12-14  19

    1. Django项目

    解析:Django是一个Python语言的Web应用框架,采用MVC的设计模式。如下所示:

    (1)manage.py:一个实用的命令行工具,可让你以各种方式与该Django项目进行交互。

    (2)views.py:处理用户发出的请求,从urls.py中对应过来,通过渲染templates中的网页显示内容。

    (3)settings.py:该Django项目的设置/配置。

    (4)urls.py:网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。

    (5)models.py:与数据库操作相关,存入或读取数据时用到这个。

    (6)templates文件夹:views.py中的函数渲染templates中的HTML模板,得到动态内容的网页,当然可以用缓存来提高速度。

    (7)admin.py:后台,可以用很少量的代码就拥有一个强大的后台。

    说明:创建项目django-admin.py startproject XXX,进入项目根目录XXX下,创建test模块python manage.py startapp test(Django 1.8.x以上的,还有一个migrations文件夹),启动项目python manage.py runserver

    0.0.0.0:8000。

     

    2. Pycharm中的PEP8规范

    解析:File -> Settings -> Editor -> Code Style -> Inspections -> PEP8 -> 忽略。   

     

    3. PyCharm删除当前行

    解析:CTRY Y。

     

    4. PyCharm注释、取消注释行

    解析:CTRL /。

     

    5. Django模板标签

    解析:Django模板是一个文本,用于分离文档的视图和数据。

    (1)if/else标签

    (2)for标签

    (3)ifequal/ifnotequal标签 (4)注释标签

    (5)过滤器

    (6)include标签

    说明:Django模板可以用继承的方式来实现复用。truncatewords:"n"显示变量的前n个字符;addslashes添加反斜杠到任何反斜杠、单引号或者双引号前面;date按指定的格式字符串参数格式化date或者datetime对象;length返回变量的长度。{% include %}标签允许在模板中包含其它的模板的内容,比如{% include "nav.html" %}。

     

    6. Django模型

    解析:

    (1)数据库配置

    (2)定义模型

    (3)数据库操作(增删改查)

    说明:创建app命令python manage.py startapp TestModel。数据类型则由CharField(相当于varchar)、DateField(相当于datetime),max_length参数限定长度。python manage.py makemigrations创建迁移文件,python manage.py migrate更新数据库。

     

    7. Django表单

    解析:

    (1)HTTP请求:HTTP协议以“请求-回复”的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。包括GET方法和POST方法。

    (2)Request对象

    (3)QueryDict对象:在HttpRequest对象中,GET和POST属性是django.http.QueryDict类的实例。QueryDict类似字典的自定义类,用来处理单键对应多值的情况。

     

    8. Django Admin管理工具 [2]

    解析:Django Admin的存在是为了方便管理员添加修改删除数据和管理站点任务。激活管理工具,如下所示:

    from django.contrib import admin admin.autodiscover() # And include this URLpattern... urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ... )

    说明:http://yoursite:8000/admin/,python manage.py createsuperuser创建超级用户,python manage.py changepassword username修改用户密码。

     

    9. wsgi,uwsgi,uWSGI [5] 

    解析:

    (1)wsgi(Web Server Gateway Interface)是Web服务器和Web应用程序之间的接口协议。。

    (2)uwsgi是一种线路协议而不是通信协议,用于在uWSGI服务器与其他网络服务器的数据通信。

    (3)uWSGI是实现了uwsgi(原生协议)和wsgi两种协议的Web服务器。

    说明:Nginx的作用主要是安全问题,负载均衡问题,提升Web服务器的IO性能等。其中,Nginx和uWSGI之间通过uwsgi协议通信。[浏览器 -> Nginx -> uWSGI]

     

    10. Django模板继承

    解析:名为mainbody的block标签是可以被继承者们替换掉的部分,所有的{% block %}标签告诉模板引擎,子模板可以重载这些部分。如下所示:

    {% extends "base.html" %} {% block mainbody %} <p>继承了 base.html 文件</p> {% endblock %}

     

    11. Django工作流程

    解析:Django工作流程,如下所示:

    说明:HTTP定义与服务器交互的4中常见方式:Put(增),Delete(删),Post(改),Get(查)。

     

    12. 清空数据库

    解析:python manage.py flush 

     

    13. Django项目环境终端

    解析:python manage.py shell。如果安装ipython会自动用它的界面,该命令和直接运行python进入shell的区别是:可以在这个shell里面调用当前项目models.py中的API,对于操作数据和测试非常方便。

     

    14. 数据库命令行

    解析:python manage.py dbshell。Django自动进入在settings.py中设置的数据库,在这个终端可以执行数据库的SQL语句。终端输入python manage.py可以看到使用manage.py命令的详细列表。

     

    15. Django REST Framework

    解析:Django REST Framework即基于Django的REST框架,使用Django REST Framework可以实现RESTful Web Service。

     

    16. Ubuntu + Django + Nginx + uWSGI安装配置 [3]

    解析:

    (1)安装Nginx:sudo apt-get install nginx。

    (2)安装uWSGI:sudo apt-get install python-dev;sudo pip install uwsgi。

    (3)安装Django:pip install django。

    Nginx配置,如下所示:(/etc/nginx/sites-available/chain.conf和/etc/nginx/sites-enabled/chain.conf)

    server { listen 8888; server_name WWW.XXX.YYY.ZZZ; location / { include /etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:9090; root /home/administrator/BodyMeasure/BodyMeasure; #指向settings.py的目录 access_log off; } }

    uWSGI配置,如下所示:(/etc/uwsgi.ini)

    [uwsgi] socket = 127.0.0.1:9090 master = true //主进程 vhost = false //多站模式 no-site = true //多站模式时不设置入口模块和文件 workers = 2 //子进程数 reload-mercy = 10 vacuum = true //退出、重启时清理文件 max-requests = 1000 limit-as = 512 buffer-size = 30000 # pidfile = /var/run/uwsgi.pid //pid文件,用于下面的脚本启动、停止该进程 daemonize = /home/administrator/BodyMeasure/uwsgi.log chdir = /home/administrator/BodyMeasure module = BodyMeasure.wsgi:application

    说明:常用操作命令为uwsgi --ini /etc/uwsgi.ini &;sudo /etc/init.d/nginx start;sudo killall -9 uwsgi;常用日志目录为/var/log/nginx/(access.log和error.log),/home/administrator/BodyMeasure/(uwsgi.log)。有错误,找日志,对症下药,药到病除。

     

    17. from django.core.wsgi import get_wsgi_application;ImportError: No module named django.core.wsgi

    解析:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages

     

    参考文献:

    [1] Django模型:http://www.runoob.com/django/django-model.html

    [2] 利用Django Admin完成更多任务:http://www.ibm.com/developerworks/cn/opensource/os-django-admin/

    [3] Django Nginx+uwsgi安装配置:http://www.runoob.com/django/django-nginx-uwsgi.html

    [4] Fedora20 + Nginx + uWSGI + Django环境的搭建:http://blog.csdn.net/celte/article/details/38305851

    [5] nginx,uwsgi,wsgi,django之间的关系:http://blog.csdn.net/u014761344/article/details/40146597

    转载请注明原文地址: https://ju.6miu.com/read-971159.html

    最新回复(0)