@llplmlyd
2019-04-18T09:06:58.000000Z
字数 1883
阅读 832
Python
在templates目录中,再创建一个新的子目录名叫polls,进入该子目录,创建一个新的html文件index.html
在根目录的文件夹下建立一个静态文件目录xxx
然后在setting中启用该静态文件目录
jQuery :https://code.jquery.com/
在form表单里面添加 {% csrf_token %} 这一段
View中def 页面 用post的method可以接收用户输入
根据用户的数据,进行处理后再返回给用户。改造views.py,再改造index.HTML文件
View:创建空列表(用于返回html中可以迭代输出)、def index(request)、request.POST.get(‘xxxx’)、render(request、html文件、xxx)
action 表示你要发送的目的url
method表示提交数据的方式,一般分POST和GET
render使用数据字典和请求元数据,渲染一个指定的HTML模板。其中有多个参数,第一个参数必须是request,第二个参数是模板,第三个是传入模板的上下文参数
view中的def的页面不能直接返回字符串,得用 HttpResponse 封装,才会被HTTP协议识别
如:return HttpResponse("Hello World",%xxx)
这里没有添加html文件,结果直接显示的浏览器的页面上。
user_list = []
def index(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
print(username, password)
temp = {'user': username, 'pwd': password}
user_list.append(temp)
return render(request, 'index.html', {'data': user_list})
Setting:TEMPLATES(HTML文件夹的定位)、STATIC(静态文件的定位:css、js、各种插件)
HTML:form、 action、method、input、submit type
将一个Django模型作为第一个位置参数,后面可以跟上任意个数的关键字参数,如果对象不存在则弹出Http404错误。
原编码:
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
# /polls/ 部分为硬编码
修改后:
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
修改之后如果变更url只需要在urls.py中进行修改即可,如:
url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
#在?P前进行添加 即可
在model中创建需要保存的用户数据的class(表) 通过orm进行数据字典的定义。同时model中也可以在class中进行def定义。
在view中修改将原本保存到临时列表中的数据通过对象创建语言objects.create()添加到数据库
然后通过数据库的API调用,将其结果返回到user_list中,同样是列表形式
最后用 render 返回给用户
HTML中可保持不变
在app/urls.py 文件的开头部分,添加一个app_name,添加后url的调用需要进行响应的修改 才算引用
原:
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
修改后:
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>