国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

django基礎(一)

MudOnTire / 3310人閱讀

摘要:基礎一項目的創建和啟動項目容器是實際的項目包配置文件路由文件實用的命令行工具數據庫配置文件更改服務啟動新建項目方法一方法二和的區別一個項目下有多個一對多的關系配置注冊視圖函數視圖函數配置配置啟動項目對象是在這個模塊中是有創建官方文檔常

django基礎-(一) 項目的創建和啟動
(venv3) [vagrant@localhost ~]$ cd /vagrant/
(venv3) [vagrant@localhost vagrant]$ django-admin startproject devops
(venv3) [vagrant@localhost vagrant]$ tree devops/
devops/      #項目容器
├── devops     #是實際的python項目包
│ ├── __init__.py
│ ├── settings.py   #配置文件
│ ├── urls.py     #路由文件
│ └── wsgi.py
└── manage.py     #實用的命令行工具
(venv3) [vagrant@localhost vagrant]$ vim devops/devops/settings.py    #數據庫配置文件更改
DATABASES = {
   "default": {
       "ENGINE": "django.db.backends.mysql",
       "NAME": "devops",
       "USER": "root",
       "PASSWORD": "123456",
       "HOST": "localhost",
       "PORT": 3306,
          "OPTIONS":{
           "init_command": "SET default_storage_engine=INNODB;",
           },
    }
}

服務啟動

(venv3) [vagrant@localhost devops]$ python manage.py runserver 0:8000

新建項目

(venv3) [vagrant@localhost devops]$ python manage.py startapp dashboard     #方法一
(venv3) [vagrant@localhost devops]$ django-admin startapp dashboard1           #方法二

startproject和startapp的區別

一個項目下有多個app(一對多的關系)

配置url

(venv3) [vagrant@localhost devops]$ vim dashboard/urls.py
from django.conf.urls import url
urlpatterns = [
]

注冊app

(venv3) [vagrant@localhost devops]$ vim devops/settings.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "dashboard"
]
hello world

視圖函數

(venv3) [vagrant@localhost devops]$ vim dashboard/views.py
from django.shortcuts import render
from django.http import HttpResponse
#視圖函數
def index(request):
    return HttpResponse("hello world")

配置app url

(venv3) [vagrant@localhost devops]$ vim dashboard/urls.py
from django.conf.urls import url
from .views import index
urlpatterns = [
    url(r"^$",index,name="index")
]

配置project url

(venv3) [vagrant@localhost devops]$ vim devops/urls.py
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
    url(r"^admin/", admin.site.urls),
    url(r"^dashboard/",include("dashboard.urls"))
]

啟動項目

(venv3) [vagrant@localhost devops]$ python3 manage.py runserver 0:8000
HttpRequest對象

是在django.http這個模塊中

是有django創建

官方文檔docs

常用的屬性:

request.body     -----b""
request.scheme -----http
request.path ---- /dashboard/
request.method --- GET
request.GET
request.POST
request.META
HttpResponse對象

HttpResponse:返回字符串

JsonResponse:返回字典,注意safe=False是針對于列表類型

GET與POST請求
- GET
request.GET
request.GET.get("xx")
request.GET.getlist("oo")
- POST
request.GET
request.GET.get("xx")
request.GET.getlist("oo")
Querydict
In [1]: from django.http import QueryDict                                                                  
In [2]: QueryDict("aa=bb&cc=dd&cc=xxx")                                                                    
Out[2]: 
In [3]: q = QueryDict("aa=bb&cc=dd&cc=xxx")                                                         
In [4]: QueryDict.fromkeys(["a","b","a"],value="val")                                                      
Out[4]: 
In [5]: q                                                                                                  
Out[5]: 
In [6]: q.dict()                                                                                           
Out[6]: {"aa": "bb", "cc": "xxx"}
In [7]: q.urlencode()                                                                                      
Out[7]: "aa=bb&cc=dd&cc=xxx"
DELETE&PUT請求

請求返回都在request.body中

視圖函數

def index_2(request):
    if request.method == "GET":
        print("request get =",request.GET)
        data = request.GET.copy()
        data["aa"] = "xxxxxx"
        print("data =",data)
        print("aa =",request.GET.get("aa"))       #取出單個值
        print("cc =",request.GET.getlist("cc"))   #取出多個值
    elif request.method == "POST":
        print("request post =",request.POST)
        print("aa =",request.POST.get("aa"))
        print("cc =",request.POST.getlist("cc"))

    elif request.method == "DELETE":
        print("delete=",QueryDict(request.body))

    elif request.method == "PUT":
        print("put=",QueryDict(request.body))

    return HttpResponse("")

請求方式:

In [1]: import requests                                                                             
In [2]: url = "http://127.0.0.1:8000/dashboard/"    
In [3]: data = {}                                                                                         
In [4]: data["aa"] = "bb"                                                                              
In [5]: data["cc"] = ["dd","ee"]      
In [9]: requests.delete(url,data=data)                                                     Out[9]: 
In [10]: requests.put(url,data=data)                                                         Out[10]: 
用戶登錄練習

視圖函數

def login(request):
    msg = ""
    if request.method == "POST":
        username = request.POST.get("username")
        userpass = request.POST.get("userpass")
        if username == "admin" and userpass == "123456":
            msg = "login success"
        else:
             msg = "login failed"
    else:
         msg = "請求方法不被允許!"
     returnHttpResponse(msg) 

post請求方法

In [11]: url = "http://192.168.33.10/login/"                                       
In [12]: data = {}                                                                                       
In [13]: data["username"] = "admin"                                                         
In [14]: data["userpass"] = "123456"   
In [16]: r = requests.post(url,data)  
In [18]: r.content.decode("utf8")  
用戶創建
(venv3) [vagrant@localhost devops]$ python3 manage.py shell
(venv3) [vagrant@localhost devops]$ python3 manage.py dbshell
(venv3) [vagrant@localhost devops]$ python3 manage.py showmigrations
(venv3) [vagrant@localhost devops]$ python3 manage.py makemigrations
(venv3) [vagrant@localhost devops]$ python3 manage.py migrate
-----------------------------------創建用戶--------------------------------------
(venv3) [vagrant@localhost devops]$ python3 manage.py shell
In [1]: from django.contrib.auth.models import User                                                        
In [2]: User.objects.create_user("wanghui","wanghui@qq.com","123456")      #創建普通用戶
In [3]: User.objects.create_superuser("admin","admin@qq.com","123456")                  #創建超級管理員

---------修改密碼-------------------------------------------------------

In [5]: u = User.objects.get(username="wanghui")                                                           
In [6]: u.set_password("654321")                                                                           
In [7]: u.save()       

---------刪除用戶----------------------------

用戶登錄
步驟:
一個視圖
GET請求:展示登陸頁面
POST請求:執行用戶登陸
                   1. 接收用戶post過來的用戶名密碼
                    2. 驗證用戶名密碼
                    3. 返回結果

視圖函數

from django.contrib.auth.models import User
from django.contrib.auth import login,authenticate
def LoginView(request):
    if request.method == "POST":
        username = request.POST.get("username")
        userpass = request.POST.get("userpass")
        # try:
        # User.objects.get(username=username)
        # except User.DoesNotExist:
        # return HttpResponse("用戶不存在!")
        user = authenticate(request,username=username,password=userpass)
        if user is not None:
            login(request,user)
            return HttpResponse("用戶登錄成功")
        else:
            return HttpResponse("用戶登錄失敗")
    return render(request, "login.html")

模板文件




    
    用戶登錄


  • username
  • password
  • 路由

    from django.conf.urls import url
    from . import views
    urlpatterns = [
        url(r"^$",views.index,name="index"),
        url(r"^index2/$",views.index_1,name="index_1"),
        url(r"^login/$",views.loginv1,name="login"),
        url(r"^loginv2/$",views.LoginView,name="loginv2"),
    ]

    文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

    轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44956.html

    相關文章

    • django基礎

      摘要:基礎一項目的創建和啟動項目容器是實際的項目包配置文件路由文件實用的命令行工具數據庫配置文件更改服務啟動新建項目方法一方法二和的區別一個項目下有多個一對多的關系配置注冊視圖函數視圖函數配置配置啟動項目對象是在這個模塊中是有創建官方文檔常 django基礎-(一) 項目的創建和啟動 (venv3) [vagrant@localhost ~]$ cd /vagrant/ (venv3) [v...

      williamwen1986 評論0 收藏0
    • 利用Django開發個小型商城(

      摘要:利用開發個小型商城我們本期的教程是教大家如何利用開發一個小型的商城這里所說的小型商城只是功能上的簡樸。并于年月在許可證下發布。這套框架是以比利時的吉普賽爵士吉他手來命名的。是重量級選手中最有代表性的一位。 利用Django開發個小型商城 我們本期的教程是教大家如何利用Django開發一個小型的商城,這里所說的小型商城只是功能上的簡樸。 作者:黃志成(小黃) 作者博客:博客地址 前提 1...

      RobinTang 評論0 收藏0
    • Django學習——Django基礎1

      摘要:將業務邏輯,數據和界面顯示分開,功能劃分清晰,有利于降低軟件的耦合度和團隊開發。主要的作用就是將一個請求分發到不同的處理,再調用相應的和關于的安裝及使用將在下一章共同學習。 Django 簡單介紹django和mvc,mvt設計模式,如果已知悉可以直接跳過。 什么是Django 是由python寫的一個開源的web應用程序框架,于2005年7月初次發布,并在2008年9月發布了第一個正...

      trilever 評論0 收藏0
    • Django搭建個人博客:前言

      摘要:是一個由寫成的開源應用框架,可以用它以更快的速度更少的代碼,搭建一個高性能的網站。本教程為零基礎的小白準備,教你快速搭建一個自己的博客網站。讓我們趕緊開始旅程吧有疑問請在杜賽的個人網站留言,我會盡快回復。 Django是一個由Python寫成的開源Web應用框架,可以用它以更快的速度、更少的代碼,搭建一個高性能的網站。 如果你以前從未接觸過web開發,并且想快速上線自己的個性化網站,D...

      _ivan 評論0 收藏0

    發表評論

    0條評論

    最新活動
    閱讀需要支付1元查看
    <