Django 学习

正在学习 Django,和半吊子 mysql。

顺便练习键盘盲打……之前一直是一指禅野路子,现在眼睛也离不开键盘。

命令行里面使用就是 django-admin,注意不是django。python包是django

(正在看网课 前端+MySQL+Django

顺带一提,Windows快速切换桌面是 win+ctrl+方向

各个文件分工

asgi 和 wsgi

涉及请求,一个同步一个异步,一般来说不需要更改。

urls

对应python函数和网站的url,使用比较频繁。

假设有一个 app 名为 sims,那么,在外层的 urls 中, url 和文件是这样对应的:

1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include

urlpatterns = [
path('admin/', admin.site.urls),
url(r'^sims/', include('sims.urls'))
]

也就是使用 urlpatterns 这个列表,里面的 path 和 url 方法来进行对应。其中,path 只管 admin,其他都是 url 来的。urls 后面接 include,


在 app ,即 sims 内层,urls.py 是这样对应的:

1
2
3
4
5
6
7
8
9
10
# coding=utf-8
from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^$', views.index),
url(r'^add/$', views.add),
url(r'^edit/$', views.edit),
url(r'^delete/$', views.delete)
]

首先需要导入 app 里面的

settings

配置文件,需要连接数据库,注册app,等等操作。

init

manage

和其他的不在一起,在外面。

最常用的文件。

APP的概念

大型项目中的某些功能。不同app可以拥有独立的表结构,html模板,css,不会相互影响。

但是一般来说多app的项目就是比较复杂的了。

可以通过 python manage.py startapp app01 这种形式来创建应用。新应用回合项目本体一样有自己的文件夹。

apps

不需要更改

tests

单元测试用的

views

用于和 urls.py 里面的函数对应,所谓视图函数。

models

专门操作数据库,使用orm,可以取代pymysql。

admin

默认提供后台管理功能,一般不使用。

主要就是 views 和 models 这两个

基本使用步骤

  • 首先需要创建并注册 app:在setting的installed_apps这个列表里面注册,具体来说就是添加字符串,内容为形如 app01.apps.app01config 之类的类,这个类里面应该包含 app01 所需要的注册信息。

  • 然后编写一个 urls 和 apps 的对应关系:编写 urls 文件。

  • 然后编写一个视图函数 views,需要有一个函数 (例如index),这个函数 index 必须有一个参数 request 。这个函数中,可以使用httpresponse()之类的方法返回文字信息,也可以通过更加复杂的方法返回其他信息。

  • 启动 django 程序:使用 python manage.py runserver

总结一下就是一般网站配置 urls 和 views 即可,如果需要访问数据库则需要 models。每一个 url 可以对应一个函数。

模板,和静态文件

templates 模板的使用:

views文件的函数返回render(),参数为request和html模板文件名,例如return render(request,”asd.html”)

其中,默认情况下,程序会在app的templates目录下寻找html模板文件。如果setting里面配置了TEMPLATES里面的DIRS,则会改变。

静态文件:例如CSS,图片,js

静态文件放在app 目录底下的 static 文件夹底下

一般来说, static 文件夹底下还会有css,img,plungins,js等等细分文件,方便管理

注意少使用绝对路径,可以使用 { % load static % } 之类的

#


Django 学习
http://petertan303.github.io/2023/08/10/2023年8月10日/
作者
peter?
发布于
2023年8月10日
许可协议