日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二

發布時間:2025/3/11 windows 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

七、在項目下新建 templates 路徑

在工程上,右鍵,添加templates目錄


注意*:
此目錄下即用來存放我們的html文件;

此目錄一般是與app的主目錄是平級的。當然也可以建立在app的目錄下,主要取決于你的模板,一般是全局使用呢,還是專門服務于某個app;
請務必設置項目自動檢索此目錄,方法如下:

1. 打開項目中的 settings.py 文件2. 找到變量 TEMPLATES ,確認其鍵名為 DIRS 的鍵值是否為:[os.path.join(BASE_DIR, 'templates')]


八、在項目下新建 static 路徑

此目錄下即用來存放我們的靜態文件:img、css等;
此目錄一般是與app的主目錄是平級的,也可自行選擇目錄;
請設置自動檢索此目錄,方法如下:

1. 打開項目中的 settings.py 文件2. 末尾處新增變量 STATICFILES_DIRS 并賦值為:[os.path.join(BASE_DIR, 'static')]


九、Django LANGUAGE_CODE和TIME_ZONE設置

將setting.py文件內

LANGUAGE_CODE = ‘en-us’
TIME_ZONE = ‘UTC’

修改為

LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'

十、為MTV模型的各文件建立聯系


我們以 http://127.0.0.1:8000/index 簡單作下說明:
1.用戶提交Request請求:把瀏覽器中url地址提交給Django服務器
2.Request首先到達的淡藍色區域,你可以理解為Django項目中的 urls.py 文件,在此文件中會去根據你事先在 urlpatterns 列表中定義好的url路徑去確定 index/ 指向哪個 Views文件,即你編寫好的某個app目錄下的 views.py 文件
3.views.py 文件中的函數render(request,‘xxx.html’,model_Var) 將會獲取數據模型:Models 和 模板網頁:Templates,在三者的共同渲染下,給客戶端返回 Response,呈現出完整網頁。
具體方法
(1)在templates文件夾上右鍵,新建home.html文件,并輸入簡單內容。



(2)在urls.py 文件中添加路由路徑

(3)在views.py 文件中構造render(request,templates,model)函數

十一、編譯運行



十二、連接mySql數據庫并使用 models.py

settings.py配置信息的內容,其中DATABASES是用來管理數據庫配置的,默認是sqlite3數據庫,所以我們需要將其修改成mysql數據庫。

# Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases# 數據庫配置 默認的數據庫為sqlite # DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } # } DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 數據庫引擎'NAME': 'django_mysql', # 數據庫名'USER': 'root', # 賬號'PASSWORD': 'root', # 密碼'HOST': '127.0.0.1', # HOST'POST': 3306, # 端口} }

字段名稱代碼中都添加了相應說明,ENGINE為MYSQL數據庫引擎,這個當然不會憑空出現,需要我們去安裝

安裝pymysql

pip3 install pymysql

項目中配置

在最開始的項目包下的__init__.py中進行如下配置

""" setting中的配置默認為sqlite3數據庫 當需要修改成MySql時 并且在setting.py的同級目錄的__init__.py 加入如下配置 否則會報錯: Error loading MySQLdb module. """ import pymysql pymysql.install_as_MySQLdb()

如果mysql配置信息錯誤(用戶名、密碼、host等)控制臺會報如下異常

pymysql.err.OperationalError: (1045, "Access denied for user 'ROOT'@'localhost' (using password: YES)")

在app(我的是myFirstWeb)文件的models.py文件中 創建Student(學生信息)和StudentUnion(社團信息)

models.py:數據模塊,用于數據庫設計

from django.db import models# Create your models here.""" 創建學生信息表模型 """"""該類是用來生成數據庫的 必須要繼承models.Model """class Student(models.Model):"""創建如下幾個表的字段"""# 學號 primary_key=True: 該字段為主鍵studentNum = models.CharField('學號', primary_key=True, max_length=15)# 姓名 字符串 最大長度20name = models.CharField('姓名', max_length=20)# 年齡 整數 null=False, 表示該字段不能為空age = models.IntegerField('年齡', null=False)# 性別 布爾類型 默認True: 男生 False:女生sex = models.BooleanField('性別', default=True)# 手機 unique=True 該字段唯一mobile = models.CharField('手機', unique=True, max_length=15)# 創建時間 auto_now_add:只有在新增的時候才會生效createTime = models.DateTimeField(auto_now_add=True)# 修改時間 auto_now: 添加和修改都會改變時間modifyTime = models.DateTimeField(auto_now=True)# 指定表名 不指定默認APP名字——類名(app_demo_Student)class Meta:db_table = 'student'""" 學生社團信息表 """class studentUnion(models.Model):# 自增主鍵, 這里不能設置default屬性,負責執行save的時候就不會新增而是修改元素id = models.IntegerField(primary_key=True)# 社團名稱unionName = models.CharField('社團名稱', max_length=20)# 社團人數unionNum = models.IntegerField('人數', default=0)# 社團負責人 關聯Student的主鍵 即studentNum學號 一對一的關系,on__delete 屬性在django2.0之后為必填屬性后面會介紹unionRoot = models.OneToOneField(Student, on_delete=models.CASCADE)class Meta:db_table = 'student_union'""" OneToOneField: 一對一 ForeignKey: 一對多 ManyToManyField: 多對多(沒有ondelete 屬性) """

(1)啟動mysql服務,啟動服務,我們在終端執行如下命令:net start mysql

D:\PythonSourceCode\myDjango>net start mysql 請求的服務已經啟動。請鍵入 NET HELPMSG 2182 以獲得更多的幫助。D:\PythonSourceCode\myDjango>

(2)服務啟動成功之后,需要登錄的時候輸入命令:
mysql -u root -p,在輸入密碼登錄。

D:\PythonSourceCode\myDjango>mysql -u root -p Enter password: **** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 29 Server version: 8.0.23 MySQL Community Server - GPLCopyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>

(3)在利用models.py文件生成數據庫表之前,我們需要手動的先創建數據庫django_mysql支持中文,我們在終端執行如下命令:
create database django_mysql charset=utf8;

mysql> create database django_mysql charset=utf8; Query OK, 1 row affected (0.02 sec)mysql>

(4)創建完django_msql庫之后,我們在終端執行如下命令,他的作用是將models文件生成一個遷移文件
python manage.py makemigrations

D:\PythonSourceCode\myDjango>python manage.py makemigrations Migrations for 'myFirstWeb':myFirstWeb\migrations\0001_initial.py- Create model Student- Create model studentUnionD:\PythonSourceCode\myDjango>


(5)遷移文件生成完畢,在終端執行如下命令:
python manage.py migrate

會將遷移文件的內容作用到數據庫中,生成表或者修改字段屬性,控制臺輸出如下,則表示執行成功

D:\PythonSourceCode\myDjango>python manage.py migrate Operations to perform:Apply all migrations: admin, auth, contenttypes, myFirstWeb, sessions Running migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying auth.0012_alter_user_first_name_max_length... OKApplying myFirstWeb.0001_initial... OKApplying sessions.0001_initial... OKD:\PythonSourceCode\myDjango>

查看我們的django_mysql數據庫,其中student和student_union就是用models文件生成的表,其他的表是項目自動生成的,暫時可以先不用管,用Navicat Premium 15軟件連接mysql數據庫課,并查看django_mysql數據庫


至此Django利用models文件創建數據庫表的功能已經完畢。

十三、接下來用代碼的方式演示一下Django如何進行增刪改查

增加數據
為了提供一些測試數據,這里用for循環批量的加了幾條簡單的數據。
在views.py文件中添加:

from django.http import HttpResponse from myFirstWeb.models import Student import random# Create your views here.""" 插入測試數據 """def insert(request):# 隨機整數 作為學號for i in range(0, 5):studentNum = int(random.uniform(0, 1) * 10000000000)# 從models文件中獲取student對象student = Student()# 給對象賦值student.studentNum = studentNumstudent.name = 'tom' + str(i)student.age = 15student.sex = random.choice([True, False])student.mobile = int(random.uniform(0, 1) * 10000000000)# 插入數據student.save()return HttpResponse('數據插入完畢')

urls.py 文件中 urlpatterns中配置

path('insert/', views.insert),

編譯運行,瀏覽器中訪問http://localhost:8000/insert/ 瀏覽器顯示‘數據插入完畢

查詢數據庫,發現有5條數據,也就是插入成功

查詢數據

""" 查詢 """def find(request):# sql = 'select * from student'# django 也可以執行原生的sql語句# result = Student.objects.raw(sql)# 查詢name = tom1的數據result = Student.objects.filter(name='tom1')"""result為<class 'django.db.models.query.QuerySet'>的對象需要進行數據處理"""arr = []for i in result:content = {'學號': i.studentNum, '姓名': i.name, '性別': i.sex}arr.append(content)print(arr)print(type(arr))return HttpResponse(arr)

配置urls,瀏覽器訪問localhost:8000/find/

修改數據

""" 修改 """ def modify(request, studentNum):# 通過學號獲取student對象student = Student.objects.get(studentNum=studentNum)# 設置student的name為jackstudent.name = 'jack'student.save()return HttpResponse('修改成功.')

urls.py 文件中 urlpatterns中配置文件中的配置如下

path('modify/<studentNum>', views.modify),

修改學號4767882034的name為jack

刪除

""" 刪除 """ def delete(request, studentNum):student = Student.objects.get(studentNum=studentNum)student.delete()return HttpResponse('刪除成功.')

urls.py 文件中 urlpatterns中配置文件中的配置如下

path('delete/<studentNum>', views.delete),

總結

以上是生活随笔為你收集整理的1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看免费观看在线 | 国产欧美精品一区二区三区app | 黑帮大佬和我的三百六十五天 | 午夜视频福利在线 | 亚洲欧美变态另类丝袜第一区 | 性猛交娇小69hd | 日本不卡一二 | 久久青草视频 | 成人在线观看免费视频 | 97自拍视频 | 欧美黑人孕妇孕交 | 亚洲福利社| 午夜国产福利在线观看 | 日本熟妇色xxxxx日本免费看 | 视频国产在线 | 亚洲精品综合在线 | 青青草视频在线观看免费 | 国产在线综合视频 | 蜜桃成人无码区免费视频网站 | 国产福利视频在线观看 | av不卡免费在线 | 三级在线看中文字幕完整版 | 欧美激情精品久久 | 国产精品久久不卡 | 销魂美女一区二区 | 久久久久女 | 日韩视频一区二区在线观看 | www.夜夜操.com| 久草免费新视频 | 高清免费av | 九九免费精品视频 | 国产成人在线一区 | 亚色在线 | 午夜黄色录像 | 一区二区黄色 | 日本黄色小网站 | a级片日本| 天堂中文在线资源 | 欧美激情精品久久久久久 | 风韵多水的老熟妇 | 亚洲动漫精品 | 国产视频久久久久久 | 青青草草 | 国产欧美一区二区 | 8ppav| 久久午夜无码鲁丝片 | 国产精品ⅴa有声小说 | 人妻在线一区二区 | 天降女子在线观看 | 91麻豆精品国产91久久久久久 | 狠狠操在线播放 | 日本不卡影院 | 天堂а√在线中文在线鲁大师 | 亚洲视频自拍偷拍 | 色视频免费看 | 精彩毛片 | 国产精品精东影业 | 亚洲三级网站 | 青青在线 | 色www情| 日韩视频免费看 | 国产最新在线观看 | 日韩在观看线 | www.天堂av.com| 欧美精品久久久久久久久老牛影院 | 国产不卡视频在线观看 | 在线观看视频色 | 亚洲色欲色欲www在线观看 | 日本少妇作爱视频 | 好吊妞在线 | 日本亚洲国产 | 依依成人综合 | 不卡一区二区在线观看 | 亚洲精品视频导航 | 肉丝肉足丝袜一区二区三区 | 国产午夜精品理论片在线 | 99re色| 成人精品福利视频 | 逼逼av | 成年人视频在线播放 | 中文字幕第一页亚洲 | 国产成人91 | 久久久久久久偷拍 | 久久一久久 | 日本久久不卡 | 农村黄色片 | 久久久久人妻一区精品色 | 亚洲中文字幕97久久精品少妇 | 麻豆一区二区三区精品视频 | 日韩精品不卡 | 先锋影音av中文字幕 | 天天操天天操天天干 | 九九热精彩视频 | 美女扒开尿口让男人爽 | 在线午夜电影 | 在线中文视频 | 亚洲一区二区麻豆 | 国产一级片精品 | 亚洲精品国产熟女久久久 |