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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章