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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django操作与内容

發布時間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django操作与内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、路由系統

1.如何實現偽靜態

在cnblogs中:https://www.cnblogs.com/wangwei5979/p/11160708.html 而我們自己寫的: http://127.0.0.1:8000/up_studnet/?id=12同樣是網頁 為何cnblogs這樣設計 原因: 1就是因為比較美觀 2由于使用搜索引擎來搜索我們所需要的內容使,第一種的方式更容易被各個搜索引擎所收錄,被搜索
到的概率就高,我們自己寫的會被搜索引擎認知為動態網頁,而第一個方式就是偽靜態。例題: http://127.0.0.1:8000/up_studnet/?id=12http://127.0.0.1:8000/up_studnet/12/ 如何實現:在urls.py里,在url中添加這樣的正則匹配, [url(r'^index/(\w+)/(\w+)/', index), url(r'^test/(?P<id>\w+)/(?P<name>\w+)/', test),]def test(request, name, id): print(id , name)return HttpResponse('test')此時就不需要用?id=某個值來進行傳值,避免了使用?來操作

  

2.路由正則與反向路由

在url里 url(r'^test2/', test2) 在html中會匹配以test2/開頭的所有接下來的網頁可以url(r'^test2/$', test2) 只能匹配/test2/的網頁了還可以自己定義404: url(r'^', notfound) 需要寫到最下面在定義了這個統配之后,所有在url沒有的 都會走這個自定義的404了反向路由: 后臺url: url(r'^logindjsajdbjsabdsabdbsabdhsabdhbsahbdsaasa/$', login, name='xxx')前臺: <form action="{% url 'xxx' %}"><input type="text"> </form>

  

3.路由分組

有許多相同的方法可以寫在一個py文件里,django也有這個方法,可以通過創建app來完成,
在創建django時只可以帶著創建一個app文件。 django創建app: python3 manage.py startapp 自定義app名稱路由分組總urls.py; url(r'^app02/', include('app02.urls')), url(r'^app03/', include('app03.urls')),分app下的 urls.py: from app03 import viewsurlpatterns = [url(r'^students/', views.studnets)] 然后在app下的views.py里寫方法

  

二、函數視圖

FBV: function based viewCBV: class based viewurls.py: url(r'^login/', views.Login.as_view()),views.py: from django.views import Viewclass Login(View):def get(self, request):return render(request, "login.html")def post(self, request): uname = request.POST.get('username')print(uname) return HttpResponse('ok')原理: 'get': 請求數據 'post':提交數據 'delete': 刪除數據 'put': 更新數據 'patch': 更新部分數據ps: form表單提交 只支持get、post ajax支持核心:def dispatch(self, request, *args, **kwargs):super(Login, self).dispatch(request, *args, **kwargs) 可以創建dispatch方法來做數據的限制

  

三、Django的ORM

Django的ORM,跟sqlalchemy一樣都是操作mysql數據庫的。 在Django的ORM中, orm配置: a.創建數據庫 create database 數據庫名b.配置mysql數據庫的鏈接: DATABASES = {# 'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),# }'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'xxx', ## 數據庫名稱'USER': 'xxx',## 數據庫用戶名稱'PASSWORD': 'xxx', ## 安裝 mysql 數
據庫時,輸入的xxx 用戶的密碼'HOST': '127.0.0.1',}}c. 注冊app: INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app02','app03'] d. 需要將mysqldb換成pymysql python3:pymysqlpython2:MySQLdb在總的的 __init__.py文件里 import pymysql pymysql.install_as_MySQLdb()e:創建表 命令:在app文件的models里,可以創建如下表: class Classes(models.Model):cid=models.AutoField(primary_key=True)cname = models.CharField(max_length=32, null=True)然后再Terminal里python manage.py makemigrationspython manage.py migrate

  

?

轉載于:https://www.cnblogs.com/wangwei5979/p/11191503.html

總結

以上是生活随笔為你收集整理的Django操作与内容的全部內容,希望文章能夠幫你解決所遇到的問題。

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