Django(常用配置)

Django 安装

pipx install django
x 为python解释器版本2 or 3
如果你想安装指定版本的django,使用pip install django=1.11.8
python manage.py 不加任何其他参数时,返回命令列表,类似help

创建一个Django项目

终端输入django-admin startproject 项目名称

# 初始文件结构
mysite
	|
	|--mysite
	|		|
	|		|--__init__.py
	|		|--settings.py
	|		|--urls.py
	|		|--wsgi.py
	|		
	|		
	|
	|--manage.py

manage.py

1.可以看作Django项目的工具,通过它来调用Django shell和数据库
比如"操作数据库(在数据库中生成表)",“启动项目”,"创建应用"等

2.启动文件,寻找其他模块的路径开始位置
通过manage.py启动之后,python解释器将其所在路径添加进模块与包的搜索路径(sys.modules)。
此时,在其他文件中导入项目下的模块如下 在app中的views.py导入mysite下的urls
from mysite import urls
在manage.py中导入mysite下的urls
from mysite import urls

settings.py
项目的默认配置。 数据库信息
时区
调式模式
安装的应用
各种路径 HTML模板文件夹路径
静态文件路径

等…

urls.py
简单来说,urls.py的作用其实就是实现了url路径与视图函数的映射关系
路由,将请求对象request中封装的的url地址映射到具体的视图处理函数或者下一个路由(url分发)

应用

一个项目下可以有多个应用,比如微信有聊天应用、朋友圈应用等
进入mysite项目文件夹下python manage.py startapp 应用名

# 此时文件夹结构
mysite/
	|
	|--mysite/
	|		|
	|		|--__init__.py
	|		|--settings.py
	|		|--urls.py
	|		|--wsgi.py
	|		
	|--app/
	|	|--	migrations/
	|	|			|-- __init__.py
	|	|--admin.py	
	|	|--apps.py
	|	|--models.py
	|	|--tests.py
	|	|--views.py
	|	
	|-- templates/
	|			
	|			
	|			
	|--manage.py

启动Django项目

pythonx manage.py runserver IP:PORT
x 是python版本
PORT默认8000
IP为0.0.0.0的时候,服务器会监听机器上所有IP端口,这意味这我们在其他电脑上通过服务器IP以及对应端口就可以访问服务器url对应的资源

配置时区

Web项目中,不可避免的要使用的到时间,通常Django默认的配置是UTC时间,因此我们需要手动的将配置文件中的时区配置修改一下下。

方法一: 修改"TIME_ZONE"
配置TIME_ZONE = ‘Asia/Shanghai’(配置时要注意时区的大小写昂,做项目要把细节掌控到位,否则后期BUG有你受的)

方法二: 修改"USE_TZ"
如果觉得上面拼写容易出错,可以使用这个方法 直接设置配置USE_TZ = False即可

为URL配置APPEND_SLASH参数

Django会默认给URL路径末尾添加一个/再去urls.py中去匹配,如果我们url指向的是一个文件,比如http://127.0.0.1:8080/index.html,默认情况下,Dajngo会帮我们处理成http://127.0.0.1:8080/index.html\这显然是不合理的
设置APPEND_SLASH=False就可以避免Django自动为url添加斜线。这同时也意味着我们在urls.py中配置路径映射的时候,一定要有一个规范,这样才能在开发中避开容易掉进的坑。
现在给自己的url.py映射中路径定义一个规范 1.路径必须以^开始,以$结束 不加结束符时,r’^/jsp/‘可以匹配r’jsp/xxxxxxxxxx/asdasd’

2.路径指向文件时,不在结尾添加/ r’^jsp/index.html$’

3.路径不指向文件时,应在路径末尾添加/ r’^jsp/index/$’

4.所有HTML、视图函数及其他文件中,路径必须和urls.py中定义的路径一样,有/的必须加上/,否则会找不到网页

引入静态文件

在应用下直接创建static目录
当启动一个Django项目时,程序会在项目的模块搜索路径下搜索(应用所在目录以及应用的下一级目录)名称为static的目录,并将检索的目录作为以后检索静态文件的检索路径。因此,在我们开发一个应用组件的时候,要保证组件的普遍适用性,我们要尽量将组件会使用到的静态文件保存在组件应用目录下的"static目录下,采用这种方式我们不需要修改"settings.py"配置文件的任何配置" templates目录和static检索的原理相同,我们也可以直接在应用目录下创建一个templates目录用来存放应用专属的模板文件,不需要修改配置文件的任何配置

配置STATICFILES_DIRS

static只用来存放服务端使用到的静态文件,对于用户上传的文件(头像等)应该使用media,在Web开发中,用户上传的文件应该存放在服务器上
配置文件内容如下

STATIC_URL='/static/'

STATICFILES_DIRS = [
	# static为项目路径下你存放静态文件的文件夹的实际路径
	os.path.join(BASE_DIR, 'static', 'css')		
]

os.path.join(BASEDIR, ‘static’, ‘css’)是静态文件存放的实际路径,STATIC_URL=’/static/'中的/statis/是这个路径的别名。两者是一个映射关系,如果要使用该竞态文件,那么静态文件的URL中的"实际路径部分"就要使用别名来代替比如,要引入css文件

href中的/static/映射的实际路径是/static/css/teststatic.css

如果使用服务端就会响应一个404错误

配置好static之后,开启服务器,我们直接在浏览器栏中输入静态文件的路径就可以访问静态文件。这是因为配置完static之后,django会将static对应路径下的静态文件配置到路由中,而不需要我们手动添加,保证在其他HTML文件中可以正常引用静态文件

127.0.0.1:8000/static/teststatic.css

使用 {% load staticfiles %}

在前端模板页面中我们可以使用{% load staticfiles %}的方式来引入static中的静态文件
css/js文件中,应该这样写

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="{% static 'css/room_table.css' %}">
</head>
关于static目录

在开发组件的过程中,由于组件需要满足大多数场景下的使用,这个时候,组件中使用到的静态文件就不能放在项目的根目录下,而是应该放在组件应用路径下
注意 1. 组件静态文件的配置不能修改Django项目的settings.py中static的配置,因为那样会降低组件的普遍适用性,否则使用该组件的用户会常常疲于配置组件的静态文件配置
2. 组件静态文件要创建在组件应用的目录下,这样可以增加可移植性

配置应用

在INSTALLED_APPS中将应用的名称添加上,这种方式在旧版本上比较常见,因为旧版本中没有apps.py文件

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

在INSTALLED_APPS中将应用下apps.py文件中的AppConfig类传入 apps.py文件源码如下

from django.apps import AppConfig
class AppConfig(AppConfig):
	name = 'rbac'				# 应用名
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rbac.apps.AppConfig',
]

查看Django全局配置

Django的全局配置存放在django.conf下的global_settings文件中,要想查看该配置文件中的内容,可以先导入该文件,在pycharm中使用ctrl + 鼠标左键点击即可

from django.conf import global_settings

后台运行Django

在公司一般都是使用Nginx反向解析配合uwsgi来搭建服务端运行环境。
uwsgi直接运行Django程序不会加载静态文件,不过Nginx反向代理uwsgi监控接口可以实现动静分离,实现对静态文件的支持

当然,如果你有自己的服务器比如vps,就可以自己搭建上述环境,如果你觉的麻烦,并且仅仅是为了测试,你可以这样

nohup python3 manage.py runserver 0.0.0.0:80 &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值