python&&Django&&上線要做的事
允許客戶端訪問Django項目
vim settings.py
ALLOWED_HOSTS = ["*"]
啓用https(非nginx)
預安裝軟件包
pip install django-extensions
pip install django-werkzeug-debugger-runserver
pip install pyOpenSSL
配置settings.py文件支持https
vim settings.py
INSTALLED_APPS = [
--snip--
'werkzeug_debugger_runserver',
'django_extensions',
--snip--
]
以https的方式啓動Django項目
python manage.py runserver_plus --cert /opt/key/server.crt 0.0.0.0:8000
提前準備可用的證書
參考資料:
https://www.cnblogs.com/blog-rui/p/11075573.html
允許跨源請求
解決的問題:
CORS 頭缺少 'Access-Control-Allow-Origin’
創建允許跨源請求文件
cat api/middlewares.py
from django.utils.deprecation import MiddlewareMixin
class MyTest(MiddlewareMixin):
def process_response(self,request,response):
response['Access-Control-Allow-Origin'] = "*"
return response
配置settings.py文件包含允許跨源請求文件
vim settings.py
MIDDLEWARE = [
--snip--
'api.middlewares.MyTest',
]
python3&&Django&&urlopen()&&UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 125-132: ordinal not in range(128)
#引入模塊
from urllib.parse import quote
import string
real_url = invite_url + user + "&phone=" + user_obj + "&url=" + software_url + "&room_name=" + room_name + "&room_password=" + room_password
#對real_url使用quote(real_url, safe=string.printable)進行轉換
real_url = quote(real_url, safe=string.printable)
with urlopen(real_url) as response:
for line in response:
line = line.decode('utf-8')
line = json.loads(line)
參考資料:
https://blog.csdn.net/qq_25406563/article/details/81253347?utm_source=blogxgwz8
https://www.cnblogs.com/Army-Knife/p/10691407.html
https://www.cnblogs.com/longbigbeard/p/9307218.html
https://segmentfault.com/a/1190000013323883