Django入门总结_django 开发总结,花三分钟看完这篇文章你就懂了

107 阅读7分钟

进入`djproject`文件



cd djprojects/


**创建项目`dj01`**



$ django-admin startproject 项目名称


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/fa04ae6996c94798805fa3323c7617b9~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=DkSunqi6Jsf82KpZsGeRRsNWGXs%3D)


查看项目



$ ls


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/437a454dac3a420da18bf867dd2be942~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=fPGcxjlwNF2Ui8KYxU%2BgnSTLSIU%3D)


查看目录结构



$ tree


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/87e630e0170b4ff58cf1b9eb63c23bb6~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=fTVFfqprQNhaW2fHwTQtKv%2FdB9U%3D)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b67405f647de4386877ae292ced8ae5a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=PEi2F%2BZfEs8cILbiuEjI87m%2FxBY%3D)


* `settings.py`是项⽬的整体配置⽂件。
* `urls.py`是项⽬的`URL`配置⽂件。
* `wsgi.py`是项⽬与`WSGI`兼容的`Web`服务器⼊⼝。
* `manage.py`是项⽬管理⽂件,通过它管理项⽬。


进入项目`dj01`



$ cd dj01

$ ls


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a37e4ac42c29440ab4311f976910e8a7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=9jwzDR8holgLyeCvVdVCIn2UUCA%3D)


执行`manage.py`文件



$ python manage.py runserver


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b145a3660a9243ae94ab7e7c6934d3e7~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=qEG3rf4uprKoyHmbze%2Fu3V9xhVU%3D)


访问服务器浏览器输入`http://127.0.0.1:8000/`  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5a582d6588de4dcca2f0392351c85f39~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=zVbcv9pL3HraDvCXNSUpCZlsnT0%3D)


`Ctrl+C`退出服务器




---



### 四、创建项目子应用


在`Web`应⽤中,通常有⼀些业务功能模块是在不同的项⽬中都可以复⽤的,故在开发中通常将⼯程项⽬拆分为不同的⼦功能模块,各功能模块间可以保持相对的独⽴,在其他⼯程项⽬中需要⽤到某个特定功能模块时,可以将该模块代码整体复制过去,达到复⽤。


#### 1.创建项目子应用



$ python manage.py startapp 子应用名


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/870ef37e12ba4e1a91d8d283bbdfa3c8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=jgLElM21MO5Y%2Bh8qWYQl9moiUq0%3D)


#### 2.应用子目录说明


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ed15a20b900c43b79c441f3b8769f619~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=BtdJCjbTdFO4Tpe0HXkZ6oS325g%3D)


* `admin.py`⽂件跟⽹站的后台管理站点配置相关。
* `apps.py`⽂件⽤于配置当前⼦应⽤的相关信息。
* `migrations`⽬录⽤于存放数据库迁移历史⽂件。
* `models.py`⽂件⽤户保存数据库模型类。
* `tests.py`⽂件⽤于开发测试⽤例,编写单元测试。
* `views.py`⽂件⽤于编写Web应⽤视图。


#### 3.注册安装⼦应⽤


创建出来的⼦应⽤⽬录⽂件虽然被放到了⼯程项⽬⽬录中,但是Django⼯程并不能⽴即直接使⽤该⼦应⽤,需要注册安装后才能使⽤。



$ vim settings.py


在⼯程配置⽂件`settings.py`中,`INSTALLED_APPS` 项保存了⼯程中已经注册安装的⼦应⽤,初始⼯程中的`INSTALLED_APPS`如下:  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6ad9ecd3518543c9a08398f5feb86f36~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=D3ctvytYJYXmWnDFaqQ02SiQI1E%3D)


注册安装⼀个⼦应⽤的⽅法,即是将⼦应⽤的配置信息⽂件`apps.py`中的`Config`类添加到`INSTALLED_APPS`列表中。  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/13a3300c5e82458595828c04c8bb8183~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=0fHuMF4Y08Z11iaM3Kw3q1owD3U%3D)


#### 4.设置PyCharm环境




---


### 五、Django模型


#### 1.定义模型类


`modles.py`文件



from django.db import models

Create your models here.

class FilmInfo(models.Model): fid = models.AutoField(primary_key=True) fname = models.CharField(max_length=20)

class PeopleInfo(models.Model): uid = models.AutoField(primary_key=True) uname = models.CharField(max_length=30) gender = models.BooleanField() dj = models.ForeignKey(FilmInfo, on_delete=models.CASCADE)


#### 2.创建迁移文件



$ python manage.py makemigrations 应用


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/866fa81390114c129da3b175a0480a24~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=Z6eZfGnYZWRtqlS3ZVInlSF%2F9RU%3D)


已安装情况下仍然报错


报错内容为找不到`mysqlclient`



django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module. Did you install mysqlclient?


通常解决办法:项目(settings.py同级)目录中`__init__.py`中添加



import pymysql pymysql.install_as_MySQLdb()


#### 3.查看生成的SQL语句



$ python manage.py sqlmigrate dj 0001


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/883fd0b4cb63413baa3b617f5f6acd1c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=cGRgmjxwp9v4cHbnpfEnttCLCkE%3D)


#### 4.执⾏迁移⽂件


执⾏迁移⽂件:根据第⼀步⽣成的语句在数据库中创建表



$ python manage.py migrate


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c79673b9d5a0488eb7dcba07d8263766~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=MBDlc25scDT%2B20%2B%2FxipgBAtvNA8%3D)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/85f2b5d6939c455b8bd515785f6929d5~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=YSpeUulm17I5VwaFfAE%2BDICeHsM%3D)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/5f367c5dd4be4555b3fce55ad33d4e1d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=j8Nl2YpjLqaj3iwo5rj74MIElDc%3D)


### 六、站点管理


#### 1. 管理界⾯本地化


本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化.


中国⼤陆地区使⽤简体中⽂, 时区使⽤亚洲/上海时区, 注意这⾥不使⽤北京时区.



LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/001557ac4ec4444781a9237cc8a2192a~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=wUUZhKvoGT4hHAAyzi01X8CplT4%3D)


#### 2. 创建管理员


创建管理员的命令 :



python manage.py createsuperuser



(awei) awei@ubuntu:~/Desktop/DjangoProjects/dj01pythonmanage.pycreatesuperuser用户名(leaveblanktouseawei):admin电子邮件地址:flymeawei@163.comPassword:@Lmw133212Password(again):@Lmw133212Superusercreatedsuccessfully.(awei)awei@ubuntu: /Desktop/DjangoProjects/dj01 python manage.py createsuperuser 用户名 (leave blank to use 'awei'): admin 电子邮件地址: flymeawei@163.com Password: @Lmw133212 Password (again): @Lmw133212 Superuser created successfully. (awei) awei@ubuntu:~/Desktop/DjangoProjects/dj01


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/76e7d7f5444f436bba363edbc3dedd26~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=8AM%2BMwUQkLsjVRkSJJk%2Bx7VLu%2BQ%3D)


登录  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/2868a6167bdc4ec7acb48179f7afeaf6~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=RrlRt8NOuldMLFD9Pww6%2FUqyNLw%3D)


#### 3. 注册模型类


在应⽤的`admin.py`⽂件中注册模型类  
 需要导⼊模型模块 :`from book.models import BookInfo,PeopleInfo`



from django.contrib import admin from dj.models import FilmInfo, PeopleInfo

Register your models here.

admin.site.register(FilmInfo) admin.site.register(PeopleInfo)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/ae844292e1cd441c98f269c635f75278~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=TZ5E%2BmA1L4AbNtlXXL7I3loUyyY%3D)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/c8cc229f32ba45a29df819508a0e308c~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=YY8biAuA%2Bp254RGgBwhh6QsIAOM%3D)


#### 4.修改默认输出


在模型类中添加`__str__`方法,优化模型类输出  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d5ecbd2e82d34f1ba6a2d72b62213626~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=cwEot3iBYWP5uVoGMk%2BTvmnaD0Q%3D)


优化后  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/0d3108ee4fab4a5db38c4995a94f49a0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=CE%2Bv1pTuTSnb6zFVmZL0zklMF4U%3D)


### 七、视图和URL


#### 1.定义视图函数



from django.shortcuts import render from django.http import HttpResponse

Create your views here.

def show(request): """ print Hello Django2.2 ! :param request: :return: """ return HttpResponse('Hello Django2.2 !')


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/81edf8306b454493bd32300cf3141bd3~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=Za4aKfYc6sGcGuMHq8mpKwVO5Fg%3D)


#### 2.配置路由


根路由`settings.py`文件



ROOT_URLCONF = 'dj01.urls'


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/392c6fa2f87549b69af9ef3b5769aa01~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=wdz7cpDEkZXulQCfjruL96UkOsM%3D)


* 配置根路由



from django.contrib import admin from django.urls import path, include

urlpatterns = [ path('admin/', admin.site.urls), path('', include('dj.urls.py')) ]


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e23c080b5018468fb80769ac0c6367a4~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=iVmnFcIC936qvlhTgTo9FTBd4LI%3D)


* 配置子路由



from django.urls import path, re_path from dj.views import show

urlpatterns = [ re_path('^show/$', show)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/a9c2d431d7684366bc263338b42d9bd1~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=b8OqPVpbzsUyZFqN6okE8ndy%2FnA%3D)


**查找视图的过程 :**


* 1.请求者在浏览器地址栏中输⼊`URL`, 请求到`Django`服务器.
* 2.`Django`服务器获取`URL`请求路径.
* 3.然后与程序中的`URLconf`逐条匹配.
* 4.如果匹配成功则调⽤对应的视图.
* 5.如果所有的`URLconf`都没有匹配成功.则返回`404`错误.




---


### 八、模板


#### 1.模板使⽤步骤


* 创建模板
* 设置模板查找路径
* 模板接收视图传⼊的数据
* 模板处理数据


#### 2. 创建模板


在应⽤同级⽬录下创建模板⽂件夹`templates`. ⽂件夹名称固定写法.


在`templates`⽂件夹下, 创建应⽤同名⽂件夹,例:`dj`


在应⽤同名⽂件夹下创建⽹⻚模板⽂件. 例 :`index.html`  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/32455d93067649509cd31539f6630aa5~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=MYROh%2BPBb7RK%2FD14KKYhDCgj4%2Bo%3D)


#### 3. 设置模板查找路径


`settings.py`文件下的`TEMPLATES`



'DIRS': [os.path.join(BASE_DIR, 'templates')],


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/e22f087828a3471d8a1ef62b19b34593~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=HSV9T0Hik35UEPist8AujckDINE%3D)  
 `BASE_DIR`当前工程项目`dj01`

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/61be0bf3a4044e2d875f9141acd8f800~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=3eBZcRkTgqPYqbywtPap8vvxfjQ%3D)


#### 4. 编辑视图函数传递数据给模板



from django.shortcuts import render

Create your views here.

def templates(request): """ xian shi dao templates :param request: :return: """ data = {'title': 'Hello Django Templates'} return render(request, 'dj/index.html', data)


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/6df3b8121ef74e9b88e3f04c49061591~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=BKJHoHm9PMWy5yY2h3mbFcqgMvk%3D)


#### 5. 编辑前端⻚⾯获取并处理数据



Title

{{ title }}


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/cfb6595f69074da6a030370eb0c43389~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=5lJb646v4YIV3yM3afGppYcxoIw%3D)


#### 6.配置路由



urlpatterns = [ re_path('^show/,views.show),repath(index/', views.show), re_path('^index/', views.templates) ]


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/f84810bf64ed4e49902a34be72feb3ca~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=Ax3KBIbU%2BWGdYMy8pwADJ37WkCs%3D)


#### 7.测试


运行服务器



$ python manage.py runserver


浏览器输入`127.0.0.1:8000/index/`页面显示`Hello Django Templates`  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/8129c61fc15a433492bb9f7ba2c6ed26~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=mHweYxIwJyMyODtItkidms%2B4Z8Q%3D)




---



### 九、配置文件settings.py


#### 1. BASE\_DIR



BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(file)))


当前⼯程的根⽬录,`Django`会依此来定位⼯程内的相关⽂件,我们也可以使⽤该参数来构造⽂件路径。


#### 2. 调试DEBUG


调试模式,创建⼯程后初始值为`True`,即默认⼯作在调试模式下。  
 作⽤:


* 修改代码⽂件,程序⾃动重启
* `Django`程序出现异常时,向前端显示详细的错误追踪信息,例如:


当我在`dj/urls.py` ⽂件末尾任意输⼊`LLO`,服务器会⾃动重启,会输出相应的错误提示。


* ⽽⾮调试模式下,仅返回`Server Error (500)`


**注意:部署线上运⾏的`Django`不要运⾏在调式模式下,记得修改`DEBUG=False``ALLOW_HOSTS。`**


#### 3. 本地语⾔与时区


`Django`⽀持本地化处理,即显示语⾔与时区⽀持本地化。


本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化,中国⼤陆地区使⽤简体中⽂,时区使⽤亚洲/上海时区,注意这⾥不使⽤北京时区表示。


初始化的⼯程默认语⾔和时区为英语和`UTC`标准时区



LANGUAGE_CODE = 'en-us' # 语⾔ TIME_ZONE = 'UTC' # 时区# 时区


将语⾔和时区修改为中国⼤陆信息



LANGUAGE_CODE = 'zh-Hans' # 中文 TIME_ZONE = 'Asia/Shanghai' # 时区上海


#### 4. 静态⽂件


项⽬中的`css``image``js`都是静态⽂件。⼀般会将静态⽂件放到⼀个单独的⽬录中,以⽅便管理。在html⻚⾯中调⽤时,也需要指定静态⽂件的路径,`Django`中提供了⼀种解析的⽅式配置静态⽂件路径。静态⽂件可以放在项⽬根⽬录下,也可以放在应⽤的⽬录下,由于有些静态⽂件在项⽬中是通⽤的,所以推荐放在项⽬的根⽬录下,⽅便管理。


为了提供静态⽂件,需要配置两个参数:


* `STATICFILES_DIRS` 存放查找静态⽂件的⽬录
* `STATIC_URL` 访问静态⽂件的`URL`前缀


示例:  
 1) 在项⽬根⽬录下创建`static`⽬录来保存静态⽂件。  
 2) 在`film_manager/settings.py`中修改静态⽂件的两个参数为



STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]


3)此时在`static`添加的任何静态⽂件都可以使⽤⽹址`/static/`⽂件在`static`中的路径来访问了。


例如,我们向`static`⽬录中添加⼀个`hello.html`⽂件



Hello

Hello World!


![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/87847a183c744304a9f4d5ed7feae5c2~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=Bx0VnekfBrBHm1VjuzGNUMR24mU%3D)


在浏览器中就可以使⽤`127.0.0.1J8000/static/hello.html`来访问。  
 ![在这里插入图片描述](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/d3715ee8aa82417795f85d2e9623d441~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=lFqlFzSeOjeqPpUkJW4zOxPb8no%3D)


**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/28e9d395efce4dfb8a6df596322adb25~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=cM7VTyZgtTZ1ksW8aWoqsn6Nxyg%3D)
![img](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b825620d9ab04e6db25e300dc2a8e639~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg5py65Zmo5a2m5Lmg5LmL5b-DQUk=:q75.awebp?rk3s=f64ab15b&x-expires=1771251350&x-signature=ujGzc5ztOZiZ%2Fv4RY7S4aOhTqwY%3D)

**[如果你需要这些资料,可以戳这里获取](https://gitee.com/vip204888)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**