Django第一章学习笔记

1.创建项目:

? ? 在当前目录下创建项目:django-admin startproject my_site(项目名)

创建好的项目目录结构:

? ? ? ? my_site

|---manage.py #管理程序的文件,启动和结束等。

? ? ? ? ? ? |---my_site

|----__init__.py

|----settings.py? ? #程序的配置文件(数据库等配置)

|----urls.py? ? #程序的路由系统,即:url和处理其函数的对应关系

? ? ? ? ? ? ? ? |----wsgi.py? ? #指定框架的wsgi

网络结构参考:

? ? ? ? my_site/? ? ? #项目的容器

? ? ? ? ├── manage.py? #管理文件,可让你以各种方式与该 Django项目进行交互

? ? ? ? └── my_site? #项目目录

? ? ? ? ? ? ├── __init__.py? #一个空文件,告诉 Python该目录是一个 Python包

? ? ? ? ? ? ├── settings.py? #配置文件

? ? ? ? ? ? ├── asgi.py? # asgi服务器来处理websocket请求

? ? ? ? ? ? ├── urls.py? #路由系统 --> URL和函数的对应关系

? ? ? ? ? ? └── wsgi.py? # runserver命令就是用wsgiref??樽黾虻サ膚eb server

2.分析,创建app(在已有的项目父文件夹下与真正主项目软件包同级的目录下):

? ? django-admin startapp app01(app??槊?

一个项目中会包含一个或多个子项目,每个项目实现不同的功能和服务,如微信里包含基本通信功能,

? ? 还有支付、小程序等,每块业务都可以分为一个子项目。在 django中,我们管这个子项目叫app。

? ? 为了开发和维护方便,每个子项目(app)都会有一个独立文件夹来存放各自的业务代码。

? ? 一般程序简单情况下,只需要创建一个app即可。例如:

? ? 淘宝:? ? ? #项目,一个大的项目不可能将所有业务放在同一个项目内,需要向下划分为多个app???子项目)

WEB? ? #app

支付宝? #app

物流

商家管理

客服系统

后台管理

? ? 创建好的app目录结构:

? ? .

|----__init__.py? ? #包

? ? |----admin.py? #数据库后台

? ? |----apps.py? ? #django把项目和app关联起来的一个文件,一般不需修改

? ? |----migrations #数据库相关

? ? |? ? |----__init__.py

|----models.py? #数据库操作地方

? ? |----tests.py? #单元测试

? ? |----views.py? #业务逻辑代码

3.第一次django请求

基本流程:

? ? 1.匹配路由,路由分发器查找用户请求的url对应关系

? ? ? ? 1.找到业务函数,调用

? ? ? ? 2.找不到,报404

2.业务函数,执行业务逻辑

? ? 3.返回数据给浏览器

? ? django第一次请求的基本流程(类似):

? ? 浏览器--①匹配路由-->urls.py(路由匹配程序)--②调用业务函数-->views.py(业务逻辑程序)--③执行业务逻辑,返回数据-->浏览器

由此可以归纳出基本过程:

? ? 1.在urls.py内编写路由规则

? ? 2.在views.py编写对应的业务函数

? ? ? ? 2.1编写业务函数代码

? ? ? ? 2.2通过HttpResponse方法返回数据给前端

? ? 3.进行单元测试检查业务实现效果:python manage.py runserver 0.0.0.0:8000

4.单元逻辑测试(利用django自带的web测试服务器):

在项目最外层目录下执行命令:

? ? python manage.py runserver 0.0.0.0:8000(测试自定义的ip:port)

开始一直说找不到django或是未激活虚拟环境,查资料无果,配虚拟环境无果,配环境变量无果,最后终于发现了些许蛛丝马迹,

? ? 可能是python版本冲突

? ? 将C:\Users\admin\AppData\Local\Programs\Python目录下之前不小心安装的python310版本文件夹全部删除,问题解决

? ? 服务开启后,浏览器访问http://127.0.0.1:8000即可测试项目

另外,服务开启后如果不关闭,每次修改代码并保存后,服务会自动重启

5.返回html页面数据:

? ? 实际不可能把一个复杂的html直接当做字符串内嵌到views内,因此需要在项目总目录下建立一个目录(例如html)专门存放html页面文件

? ? 而这些自定义的文件夹需要在settings.py中的TEMPLATES列表中进行配置,需要在其中的字典中'DIRS'键对应的列表内自定义,要用到

? ? 绝对路径,可以借助settings.py中已有的变量BASE_DIR(项目根目录的绝对路径)和os.path.join(BASE_DIR, "html")方法进行拼接:

? ? 1.配置settings.py

TEMPLATES = [? #模板,处理html文件

? ? ? ? {

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, "html"), ],? #告诉django html等文件夹的位置

? ? ? ? ? ? 'APP_DIRS': True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

],

},

},

]

2.views.py调用render方法

? ? 返回指定html页面文件可以使用这种方式:

? ? ? ? return render(request, 'form.html') #其中request是默认参数,'form.html'是指定的文件名

? ? 由此可以达到前后端分离的效果,前端人员专注于html页面编写

? ? 后台处理由python完成

? ? 3.HTML模版加载 css、js、img等静态文件问题:

? ? 参考资料:https://www.cnblogs.com/yjq520/p/8990783.html

1.创建目录:在我们的项目中创建静态文件存放目录,HelloDjango目录下创建文件夹 static,

? ? ? ? ? 然后在 static文件目录中新建 js、css、images三个文件夹用于存放静态资源文件

? ? ? ? 2.设置静态文件目录:打开文件 settings.py,在该文件中查找变量 STATIC_URL,在该变量下添加如下代码:

? ? ? ? ? ? STATIC_URL = '/static/'

# STATIC_URL定义了 web服务链接媒体的 URL地址,STATICFILES_DIRS允许自定义新的 static目录。

? ? ? ? ? ? STATICFILES_DIRS = [

os.path.join(BASE_DIR, "static"),

os.path.join(BASE_DIR, "recommend", "static"),

]

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

推荐阅读更多精彩内容