django入门配置与跨域访问
django主要内容
基本配置文件、路由系统
M模型、T模板、V视图
Cookies、session
分页、邮件
Admin管理后台
安装:pip install Django=2.2.12
项目结构
网页调试工具:F12、ctrl+shift+I

使用django-admin startproject mysite创建项目mysite
python manage.py runserver 开启服务(测试使用)
python manage.py startapp 创建应用
python manage.py migrate 数据库迁移
python manage.py 列出所有Django子命令
关闭服务:使用ctrl+c
Db.sqlte3:与数据库建立链接
init:python包初始化文件
wsgi.py:web服务网关的配置文件-Django正式启动时需要
urls.py:项目的主路由配置-http请求进入Django时,优先调用该文件
settings.py:项目的配置文件-包含项目启动时的配置
文件系统细节
settings.py:
包含共有配置与自定义配置:
BASE_DIR = “xxxxx“ 项目绝对路径
Debug=True:调式模式:代码改动后,页面立即刷新,并在网页中显示错误信息
ALLOW_HOSTS = [‘127.0.0.1’]:允许访问的地址
ROOT_URLCONF=’mysite1.urls’
DATABASES = {}:数据库配置
LANGUAGE_CODE=’zh-Hans’:中文
TIME_ZONE=’Asia/shanghai’
自定义配置中,建议名字个性化,防止重名
代码中使用、修改配置使用from Django.conf import settings 导入即可
url
protocol://hostname:port/path?key1=value1&key2=value2#fargment
protocol:协议
hostname:主机地址
port:端口号
path:主机文件、目录地址
query:查询,?表示,后接一系列键值对
fargment:定义信息位置,#表示
输入url地址后:
- 从配置文件中根据ROOT_URLCONF=’mysite1.urls’找到主路由文件,
- 加载主路由文件中的urlpattern变量,包含很多路由数组。
- 依次匹配urlpattern中的path。path(’page/2003/‘,view.page_2003_view),’page/2003/‘是请求名,view.page_2003_view是函数名
- 匹配成果响应,失败返回404
视图函数(后台接口)
一个用于接收htttp请求(httpRequest对象)并通过httpRespose对象返回响应的函数。
语法:
def xxx_view(request[,参数]):
return httpResponse
path转换器<>,包括int、str(除/之外的非空字符)、slug:数字、字母、下划线组成、path(匹配非空字符)
path('page/int:page',view.xxxx)
正则path:re_path()
请求与响应
请求案例

http请求会转化为HttpRequest对象
安装配置uwsgi
pip install uwsgi
which uwsgi
ldd /usr/anaconda/Anaconda/envs/WebTagging/bin/uwsgi
建立三个软连接
cp /usr/anaconda/Anaconda/lib/libstdc++.so.6 /lib64/
uwsgi配置文件uwsgi.ini
http=0.0.0.0:7896 只使用uwsgi时,使用http,0.0.0.0表示局域网访问,此时将allows_host表示可以访问服务的主机ip,未部署设置为*好测试。
socket=127.0.0.1:8000 使用ngnix时使用socket模式,127.0.0.1代表ngnix与uwsgi通信地址,即使用uwsgi在本机127.0.0.1:8000 上搭建服务,ngnix充当该接口服务与公网http请求的中介。
chdir=/mnt/dell/kangbowei/AI
wsgi-file=AI/wsgi.py
pidfile=uwsgi.pid
daemonize=uwsgi.log
master=True
启动服务:uwsgi --ini uwsgi.ini
关闭服务:uwsgi --stop uwsgi.pid ,重复开启服务导致无法关闭进程,需要手动杀掉进程(最小值)
查看对应进程:ps aux|grep 'uwsgi'
ngnix 安装 Nginx 安装配置 | 菜鸟教程 (runoob.com)
安装目录:/usr/local/webserver/nginx/sbin/nginx
跨域
什么是跨域:当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
想要利用django框架实现前后端分离,首要的问题便是解决跨域请求的问题。
解决方法:
1.JSONP,比较原始的方法,本质上是利用html的一些不受同源策略影响的标签,从而实现跨域请求,但是这种方法只支持GET的请求方式
2.CORS,Cross-Origin Resource Sharing,是一个新的 W3C 标准,它新增的一组HTTP首部字段,允许服务端其声明哪些源站有权限访问哪些资源。换言之,它允许浏览器向声明了 CORS 的跨域服务器,发出 XMLHttpReuest 请求,从而克服 Ajax 只能同源使用的限制。在我们的django框架中就是利用CORS来解决跨域请求的问题。
Django中如何使用CORS
pip install django-cors-headers
修改django项目中的setting.py,添加如下两项。重新启动服务。


安装easyocr
pip install easyocr

浙公网安备 33010602011771号