Django入门笔记一

web应用程序处理流程

web_processing_sequence.png
客户端
  • 向服务器端发送HTTP请求
  • 从服务器端接收HTTP响应
  • 与服务器端遵循HTTP协议
服务器端
  • 服务器程序
    • 接收&解析HTTP请求报文
    • 构造&返回HTTP响应报文
  • 框架程序(Django,Flask)
    • http请求对象(Request)
    • 具体业务逻辑(Web应用的核心)
    • http响应对象(Response)
    • 与框架程序遵循WSGI协议

Django基础一

Django的MVT
mvt.png
  • Model:负责和数据库交互,进行数据处理
  • View:接收请求,进行业务处理,返回应答
  • Template:负责封装构造要返回的html
搭建环境
  • 创建虚拟环境
mkvirtualenv django_1.11 -p python3
  • 安装Django
pip install django==1.11.11
  • 虚拟环境相关指令
mkvirtualenv  # 创建虚拟环境
rmvirtualenv  # 删除虚拟环境
workon  # 进入虚拟环境、查看所有虚拟环境
deactivate  # 退出虚拟环境
  • pip相关指令
pip install  # 安装依赖包
pip uninstall  # 卸载依赖包
pip list  # 查看已安装的依赖库
pip freeze
创建工程
  • 创建工程
django-admin startproject 工程名称
  • 工程目录说明
__init__.py:目录为python包
settings.py :项目的配置文件。
urls.py :项目URL路由的配置文件,URL地址与视图函数的映射表。
wsgi.py :Web服务器和Django交互的入口。
manage.py :是项目管理文件

urls.py中的path函数

path(route, view, kwargs=None, name=None)
route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
view: 用于执行与正则表达式匹配的 URL 请求。
kwargs: 视图使用的字典类型的参数。
name: 用来反向获取 URL。
  • 运行开发服务器
python manage.py runserver ip:端口
创建子应用
  • 创建子应用
python manage.py startapp 子应用名称

一个项目由多个应用(模块)组成,每一个应用完成一个特定的功能
在pycharm中,Tools--->Run manage.py task--->在管理器中输入startapp 子应用名称,也能创建子应用

  • 子应用目录说明
__init__.py 目录为python包
admin.py 文件跟网站的后台管理站点配置相关。
apps.py 文件用于配置当前子应用的相关信息。
migrations 目录用于存放数据库迁移历史文件。
models.py 文件用户保存数据库模型类。
tests.py 文件用于开发测试用例,编写单元测试。
views.py 定义处理函数(视图函数),接收并处理请求,与M&T交互,返回应答。
  • 注册安装子应用
    • 建立应用与项目之间的练习,对应用进行注册
    • 修改settings.py中INSTALLED_APPS列表的配置
创建视图views
  • 编写Web应用的业务逻辑
  • 视图函数的参数为HttpReqeust对象,名为request
  • 视图函数的返回值为响应对象,将要返回的字符串放到HTTPResponse对象中
添加路由
  • 在每个应用中创建自己的子路由文件,然后在主urls中添加子路由
  • urls中的路径遵循正则表达式有^和,且不能出现在总路由urls的匹配路由中
  • 主路由中的子路由添加有字符串和路径(导包)两种方式
配置文件
  • BASE_DIR,当前工程的根目录,
  • DEBUG(开发和上线),DEBUG为True时,默认工作在调试模式下,部署线上
    修改DEBUG=False
  • 本地语言与时区,初始化的工程默认语言和时区为英语和UTC标准时区
静态文件
  • 项目中的CSS、图片、js都是静态文件,有些静态文件在项目中是通用的,通常放
    在项目的根目录下
  • 配置两个参数
    STATICFILES_DIRS=[] 存放查找静态文件的目录 接收的是list
    STATIC_URL 访问静态文件的URL前缀
  • Django 仅在调试模式下(DEBUG=True)能对外提供静态文件
  • 当DEBUG=False工作在生产模式时,Django不再对外提供静态文件,需要是用
    collectstatic命令来收集静态文件并交由其他静态文件服务器来提供
路由说明
  • 路由定义位置
    工程同名目录下的urls.py文件是Django解析路由的入口,每个子应用为了保持相对
    独立,在各个子应用中定义自己的urls.py来保存该应用的路由。然后在主路由文件
    中包含各应用的子路由数据
    Django接收到请求时,从主路由文件中的urlpatterns列表中,以由上至下
    的顺序查找对应路由规则,如果发现include包含,进入被包含的urls中
    的urlpatterns列表由上至下进行查询,由上自下可能会使上面的路由屏蔽掉下面的
    路由,带来非预期结果

  • 路由命名与reverse反解析
    在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间
    在定义普通路由时,可以使用name参数指明路由的名字

    使用reverse函数,可以根据路由名称,返回具体的路径
    对于未指明namespace的,reverse(路由name)
    对于指明namespace的,reverse(命名空间namespace:路由name)

Remark:
URL:统一资源定位符,互联网上的每个文件都有唯一的URL
URL格式:

schema://host[:port#]/path/.../[?query-string][#anchor]
schema:指定使用的协议(有http,https,ftp)
host:http服务器的IP或域名
port:端口号
path:访问资源的路径
query-string:发送给http服务器的数据
anchor:锚点,在页面上的定位(前端)

端口被占用解决方式:

ps aux 查看Linux的当前进程
kill -9 进程号 杀死进程
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342