列出了在学习Django时的一些小问题,新手应该都会遇到。
- 新建项目
django-admin startproject projectname
- 创建应用
python manage.py startapp appname
- 外网访问
修改settings.py
,改为
ALLOWED_HOSTS = ['*']
- NameError: name ‘url’ is not defined
在urls.py
中添加
from django.conf.urls import url
- NameError: name ‘include’ is not defined
在urls.py
中添加
from django.urls import include
- admin管理员
python manage.py createsuperuser
然后通过访问/admin
就可以登录了。
-
处理GET/POST请求
if request.method=='GET': if request.GET: text = request.GET.get('str', default='') if request.method=='POST': if request.POST: text = request.POST.get('str', default='')
-
处理POST请求报403 CRSF
需要在setttings中注释掉这一行,不然会报403 CRSF错误
'django.middleware.csrf.CsrfViewMiddleware'
- 发起GET/POST请求
这个问题不是Django独有的,随便一个Python项目都有这个需求。
首先需要安装requests
依赖,它不是内建的,需要额外安装。
pip install requests
import requests
def get_post(request):
url = 'http://127.0.0.1:8012/wordseg/jieba_seg/'
# GET请求
get1 = requests.get(url);
print(get1.text)
# POST请求
post1 = requests.post(url, data = {'str':'我是一个新世纪码农'})
print(post1.text)
return HttpResponse('complete')
- 返回json
# 首先引入json
import json
def res_test(request):
resp = {'code': 0, 'msg' : "请求参数不能为空"}
return HttpResponse(json.dumps(resp), content_type="application/json")
如果不加content_type="application/json"
,返回的则是文本格式的json字符串,而非json格式。
- 首页
对于一个初始项目,首页是django的一个介绍页。如果配置过urls.py
且开启了DEBUG,首页会是一个信息页面,显示所有app的访问路径。
如果想自定义首页,可以在urls.py
的urlpatterns
里加上
path('', myapp.views.index, name= 'home'),
其中myapp
是一个app。