django框架
admin
2023-07-20 03:41:38
0次

一、Django的下载与基本命令

1.下载Django

pip install django

2. 创建一个django project

django-admin.py startproject mysite
[mysite 项目名称]
django框架
当前目录下会成mysite的工程,目录结构如下:

  • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等
  • setting.py ----- 包含了项目的默认设置,包括数据库信息,调用标志以及其他一些工作
  • urls.py ----- 负责把URL模式映射到应用程序

3.在mysite目录下创建应用

py manage.py startapp app01

当前目录下会成mysite的工程,目录结构如下:
django框架

4. 启动django项目

方法一:在cmd终端输入
python manage.py runserver 8080
方法二:在pycharm中点击Run运行

5.简单例子

浏览器输入网址urls下的path匹配到路径之后,在视图views中执行指定的函数
注意:html文件要放在templates文件下面

# urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),
]
# views.py
def timer(request):
    import time
    date = time.time()
    return render(request,"timer.html", {"date":date})

# templates/timer.html
当前时间:{{ date }}

二、静态文件配置

作为一个网站应该要把js和css文件放在服务器端,而不是简单的放在timer.html同一个目录下

  1. 在project中创建一个static的文件夹(能static就是static,别用其他的名字)
  2. 将js和css的文件放到static的文件夹中
  3. 在setting.py中加入STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
    ]

4.是否只能用STATICFILES_DIRS,是的错一个都不行

文件结构:
|---mysite
    |---app01
    |---demo
    |---static
        |---jquer-3.3.1.min.js
        |---app01
            |---timer.css
            |---timer.js
    |---templates
        |---timer.html

# mysite/setting.py

STATIC_URL = "/static/"

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"), # 自定义静态文件(statics名称尽量和默认保持一致)
]

将css和js分别放入app01文件夹中

timer.html中引入css和js文件

在浏览器中输入http://127.0.0.1:8000/static/jquery-3.3.1.min.js 查看是否可以找到jQuery文件

三、路由控制

1. 简单配置

路由的配置就是哪一个路径由哪一个视图函数处理
举个例子比如档案库中有2003,2004~2018的档案进行分类,如果不用路由控制那就会出现下面这样的情况。

# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'^articles/2003/$', views.special_case_2003),
    re_path(r'^articles/2004/$', views.special_case_2003),
    re_path(r'^articles/2005/$', views.special_case_2003),
    re_path(r'^articles/2018/$', views.special_case_2003),
]

那使用路由控制之后应该是什么情况呢

# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'^articles/2003/$', views.special_case_2003),
    re_path(r'^articles/([0-9]{4})/$', views.special_year), # 一个分组相当于多传一个参数,special_year(request,year)
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/$',views.mouth_archive),
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)$', views.archive_detail),
]

# app01/views.py
def special_case_2003(request):
    return HttpResponse('special_case_2003')

def year_archive(request,year):
    return HttpResponse(year)

def mouth_archive(request,year,mouth):
    return HttpResponse(year,mouth)

def archive_detail(request,year,mouth,day):
    return HttpResponse(year,mouth,day)

注意:

  • 若要从URL中捕获一个值,只需要在它周围放置一对圆括号。
  • 不需要添加一个前导的反斜杆,因为每个URL都有。例如,应该是^articles而不是^/articles。
  • 每个正则表达式前面的'r'是可选的但是建议加上。它告诉Python这个字符串是"原始的" -- 字符串中任何字符都不应该转义

2. 有名分组

在分组中添加:?P<变量名称>

urlpatterns = [
    re_path(r'^articles/(?P[0-9]{4})/(?P[0-9]{2})/$',views.mouth_archive),
]

在浏览器中输入http://127.0.0.1:8000/app01/2003/03/,就表示mouth_archive(request,y=2003,m=03),
就好比函数中固定参数传值一样

3. 分发

  • 假如我们项目中有10个应用,每个应用都是100个URL,那所有的路由控制都会在全局的urls.py文件中增加耦合度
  • 分发的作用就是对每个app进行解耦,把各自的app的url放到各自的文件夹下
# mysite/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),

    re_path(r'app01/',include("app01.urls"))
]

# app01/urls.py
urlpatterns = [
    re_path(r'^articles/([0-9]{4})/([0-9]{2})/$',views.mouth_archive),
]

4. 登陆验证示例

  • 为了测试我们需要先注释掉setting.py文件下的django.middleware.csrf.CsrfViewMiddleware
  • 当我们写好页面的时候按F12可以查看login是get的请求,当点击按钮后变成POST请求
# 在template中创建一个login.html

用户名: 密码:
# mysite/urls.py # name='LOG'指的就是给login/起的别名 path('login/', views.login, name='LOG'),

5.PATH

6.视图部分

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...