Django框架入门_正正小课堂
MVC、Router路由、Template
Django框架的MVC流程
Django框架创建流程
Django框架目录的简单介绍
本课程包含内容
常用命令
网站新建流程
-
新建Django项目
-
新建页面
D:\djangoProject>python manage.py startapp firstWEB
-
settings.py设置
- INSTALLED_APPS加上页面名称(firstWEB)
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
-
配置urls.py,写views
#写好index.html #views.py def index(request): return render(request,'index.html') #urls.py urlpatterns = [ path('admin/', admin.site.urls), re_path(r'^index/',views.index,name="index") #删掉index/可以直接域名访问 ] #GET,使用()把正则包起来,然后用?P正式表达式 这种形式来表示 #re_path('page=(?P<page>\d+)&key=(?P<key>\w+)', views.detail, name="detail"), #上面表示:http://127.0.0.1:8000/page=12&key=abc
访问页面-》从urls.py的urlpatterns找页面-》从views.py的函数执行返回页面
POST页面/表单提交
html页面表单form需要加{% csrf_token %}
返回结果值 给 结果页面(渲染模板):return render(request,'result.html',context={'data':result})
#views.py
def calPage(request):
return render(request,'cal.html')
#接收Post请求,存在request中
def calculate(request):
value_a = request.POST['valueA']
value_b = request.POST['valueB']
result = int(value_a) + int(value_b)
return render(request,'result.html',context={'data':result})
#urls.py
urlpatterns = [
re_path(r'^calPage/',views.calPage),
re_path(r'^calculate',views.calculate)
]
#cal.html
<form method="POST" action="/calculate">
{% csrf_token %}
第一个数字<input type="number" name="valueA">
+
第二个数字<input type="number" name="valueB">
<input type="submit" value="提交计算">
</form>
#result.html
<h1>计算结果是:</h1><h2>{{ data }}</h2>
数据库SQLite的使用
-
添加models.py
-
创建数据库
#models.py class cal(models.Model): value_a = models.CharField(max_length=10) value_b = models.FloatField(max_length=10) result = models.CharField(max_length=10)
D:\djangoProject>python manage.py makemigrations
D:\djangoProject>python manage.py migrate
#list.html
<table border="1">
<thread>
<tr>
<th>valueA</th>
<th>valueB</th>
<th>result</th>
</tr>
</thread>
{% for i in data %}
<tr>
<td>{{ i.value_a }}</td>
<td>{{ i.value_b }}</td>
<td>{{ i.result }}</td>
</tr>
{% endfor %}
</table>
<form action="/del" method="POST">
{% csrf_token %}
<input type="submit" value="清库">
</form>
#views.py
def calList(request):
data = cal.objects.all()
# for i in data:
# print(i.value_a,i.value_b,i.result)
return render(request, 'list.html', context={'data': data})
def delData(request):
cal.objects.all().delete()
return HttpResponse('data deleted')
#urls.py
urlpatterns = [
re_path(r'^list',views.calList),
re_path(r'^del',views.delData)
]
对接收POST请求网址的优化
# 接收Post请求,存在request中
def calculate(request):
if request.method == 'POST':
#处理post
else:
return HttpResponse('please visit us with POST')