Django学习笔记

安装时python的版本3.9.2,Django版本3.1.7。安装Django参考的教程是https://www.runoob.com/django/django-install.html,注意的是配置系统变量时,是在这里找到django文件夹的(反正可以用命令行创建项目应该没有错),创建Django参考的教程是https://www.cnblogs.com/yangy2020/p/13173758.html,因为也是用PyCharm社区版,最后进入http://127.0.0.1:8000/,项目创建成功。

图1

 

图2

 

以下的步骤就全部参考B站up主的贴心教程https://www.bilibili.com/video/BV1Wt411K7QH?t=4668。在PyCharm打开了文件后,还需要在PyCharm中Run的Edit Configurations添加一个new Configurations(看其它博客叫做配置运行,图3)。其中的manage.py是位于刚刚用命令行创建的项目中(图4),Parameters中填写runserver之后就可以点击run了。

         

            图3                                    图4

 开始敲代码咯。在此之前先再fistWeb文件夹下创建一个templates文件夹,用于存放写的html文件。

(图5)

 

视频中取到数据到后台了,1111和2222注意它们前面都有一个u,表示Unicode,要让它们实现相加的话,需要转为整型或浮点型,不然就是字符串的拼接了。

(图6)

 

先要在models.py中增加以下代码(表的列名)再去连接数据库!,当初就是连接了数据库再写代码,导致没有对应的列(这里只有重新创建一次Django项目)。migrations应该如何更新?(疑问)

        

 

因为up的PyCharm是专业版而这里是社区版本,所以要下载一个第三方的插件,在Setting->Plugins->搜索database(图7),重启PyCharm后然后在左边的侧边栏就可以看到DB Browser,点击绿色的加号选择SQLite,然后在Database files中选择项目创建时已经存在的db.sqlite3文件,第二列写main(并不用写一开始已经存在),点击Test Connection测试连接 (图8)。

 (图7)

(图8)

 (图9)

 

urls.py

 1 from django.urls import path
 2 from django.conf.urls import url
 3 from django.contrib import admin
 4 from firstWEB import views
 5 
 6 urlpatterns = [
 7     path('admin/', admin.site.urls),
 8     url(r'^index/',views.index),
 9     url(r'^calpage/',views.CalPage),#不要写()是函数
10     url(r'^cal',views.Cal),
11     url(r'^list',views.CalList),
12     url(r'^del',views.delData),
13 ]

 

models.py

1 from django.db import models
2 
3 # Create your models here.
4 class cal(models.Model):
5     value_a = models.CharField(max_length=10)
6     value_b = models.FloatField(max_length=10)
7     result = models.CharField(max_length=10)

 

view.py

 1 from django.shortcuts import render
 2 
 3 # Create your views here.
 4 from firstWEB.models import cal
 5 from django.http import HttpResponse
 6 
 7 def index(request):
 8     return render(request,"index.html")
 9 
10 def CalPage(request):
11     return render(request,'cal.html')
12 
13 def Cal(request):
14     if request.POST:#要通过输入界面再进入计算结果页面,不然会报错 也可以写成request.method == 'POST'
15         value_a = request.POST['valueA']
16         value_b = request.POST['valueB']
17         result = int(value_a) + int(value_b)#一定要转整型,不然是字符串拼接
18         cal.objects.create(value_a=value_a,value_b=value_b,result=result)
19         return render(request,'result.html',context={"data":result})#data对应result.html中的data
20         print(value_a,value_b,result )
21     else:
22         return HttpResponse('please visit us with POST')
23 
24 def CalList(request):
25     data = cal.objects.all()
26     return render(request,'list.html',context={'data':data})#不要乱缩进
27 
28 def delData(request):
29     cal.objects.all().delete()
30     return HttpResponse("data Delete")

 

settings.py

 1 INSTALLED_APPS = [
 2     'django.contrib.admin',
 3     'django.contrib.auth',
 4     'django.contrib.contenttypes',
 5     'django.contrib.sessions',
 6     'django.contrib.messages',
 7     'django.contrib.staticfiles',
 8     'myFirstDjango ',#项目名字
 9 ]
10 
11 LANGUAGE_CODE = 'zh-Hans'#改中文
12 
13 TIME_ZONE = 'Asia/Shanghai'#改时区

 

cal.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>计算页面</title>
 6 </head>
 7 <body>
 8 <form method="POST" action="/cal"><!--action是请求哪个地方 -->
 9     {% csrf_token %} <!-- 表示这是我信任的页面 python禁止跨域访问 -->
10     test第一个数字<input type="number" name="valueA">
11     +
12     test第二个数字<input type="number" name="valueB">
13     <input type="submit" value="提交计算">
14 </form>
15 </body>
16 </html>

 

list.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>cal LIST</title>
 6 </head>
 7 <body>
 8 <table border="1">
 9     <thead>
10     <tr>
11         <th>valueA</th>
12         <th>valueB</th>
13         <th>result</th>
14     </tr>
15     </thead>
16     {% for data in data %}
17     <tr>
18         <td>{{ data.value_a }}</td>
19         <td>{{ data.value_b }}</td>
20         <td>{{ data.result }}</td>
21     </tr>
22     {% endfor %}
23 </table>
24 <form action="del" method="POST">
25     {% csrf_token %}
26     <input type="submit" value="清库">
27 </form>
28 </body>
29 </html>

 

result

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>结果页面</title>
 6 </head>
 7 <body>
 8 <h1>计算结果是:</h1><h2>{{data}}</h2>
 9 </body>
10 </html>

 

index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>My First Web form Django</title>
 6 </head>
 7 <body>
 8 <h1 style="color: red"> my first django website</h1>
 9 </body>
10 </html>

 

 
 
 
 
 
 
 
 
 
 

posted on 2021-03-13 17:08  stuMartin  阅读(76)  评论(0编辑  收藏  举报

导航