PythonWebに基づくジャンゴ


PythonWebフレームワーク

  • Django :完全に機能し、すべてが使いやすい
  • フラスコ:小さくて美しい、あなたはそれを自分で組み立てる必要があります、柔軟

1つは、Djangoの基本です

1.1インストール

pip install django
pip install mysqlclient

1.2.djangoを使用してWebサーバープロジェクトを作成します

django-adminstartprojectブログ

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

1.3。ウェブサイトサービスを実行する

python manage.py runserver

ここに画像の説明を挿入

  1. 最初のブログフォルダを入力して、以下を実行します。
    ここに画像の説明を挿入

  2. Webサイトhttp://127.0.0.1:8000/を入力してください:

次のインターフェイスはデフォルトで生成されます
ここに画像の説明を挿入

1.4Webページを作成する

  • 2番目のブログフォルダを開きますurls.pyファイル
    ここに画像の説明を挿入

  • 次の図に示すように、ステートメントを追加してファイルを作成します
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入

  • Webページhttp://127.0.0.1:8000/を再入力します。
    ここに画像の説明を挿入

  • 解決策:上記の特定のファイルを追加するの
    ここに画像の説明を挿入
    は単純なWebサービスリクエストです。Djangoでは、ルーティングを構成し、処理関数をバインドして論理処理を実行するだけで済みます。

1.5メインルートを設定する

http://127.0.0.1:80jing00/メインパスに直接アクセスすると、エラーが報告されます。
メインパスのメインルートがパス処理機能に追加されていないためです。

ここに画像の説明を挿入
ここに画像の説明を挿入


2.Webページの表示

2.1構成関連ファイル

  • ルーティングファイルurls.pyを構成します
    ここに画像の説明を挿入

  • views.pyで関数ユーザーを作成します
    ここに画像の説明を挿入

  • ファイルtemplasとサブファイルuser.htmlを同じレベルで作成します
    :manage.pyとtempaltes
    ここに画像の説明を挿入

  • settings.pyファイルを構成します
    ここに画像の説明を挿入

2.2コードの記述

  • views.pyのユーザー関数内容は以下の通りです。
def user(request):
    #get请求 传入 名字,然后在网页上显示:你好,名字
    #创建html模板h和manage.py同一级创建templates文件夹
    #该文件夹下创建user.html
    #http://127.0.0.1:8000/users?name=Tom
    name = request.Get['name'] 
    context = {
    
    'name': name}#用字典传输名字
    return render(request,'user/user.html',context)
  • user.htmlの内容は以下の通りです
<h1>你好,{
   
   {name}}</h1>>
  • 運転結果
    ここに画像の説明を挿入

2.3HTTPリクエスト

HTTPチュートリアル
ここに画像の説明を挿入

  • VSCodeを介して上記のリクエストを開始します

拡張RESTクライアントをインストールしますここに画像の説明を挿入

  • 新しいファイルを作成するtest.http

ここに画像の説明を挿入

  • 下の図に示すように、をクリックしますマスタードルクエスト

ここに画像の説明を挿入
ここに画像の説明を挿入


3、データベースに接続します

3.1データベース接続

SQLステートメント
ORMメソッド:SQLAlchemy

  • settings.pyはデータベースを設定します
    ここに画像の説明を挿入

  • アプリケーションの生成:

django-amdinstartappユーザー

ここに画像の説明を挿入
ここに画像の説明を挿入

  • settings.pyがアプリケーションに参加します
    ここに画像の説明を挿入
  • データベース内のデータに対するDjangoの操作は、ユーザーの下のmodels.pyです。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  • データベースは、pythonDjangoに付属する権限管理のテーブルを生成します
    ここに画像の説明を挿入
  • ユーザー定義テーブルを生成する

python manage.py makemigrationsユーザー
は、定義されたユーザーモデルのユーザーテーブルを生成するようにDjangoに指示します
ここに画像の説明を挿入

  • python manage.pymigrateユーザーはユーザー
    を更新するだけで済みます
    ここに画像の説明を挿入
  • データベースを表示します
    。2番目のユーザーはクラス名です
    ここに画像の説明を挿入

3.2データの追加

この手順では、データベースに情報を追加します。データベースに情報を追加するためのhttpリクエストはPOSTですが、ブラウザはGET操作しか実行できないため、RESTクライアントがPOSTリクエストに使用されます。

ここに画像の説明を挿入

  • test.httpファイル
POST http://127.0.0.1:8000/users/ HTTP/1.1
Content-Type: application/json

{
    "name":"Hendeff",
    "score":"66"
}

ここに画像の説明を挿入

  • views.pyファイル
def user(request):
    #判断请求
    if request.method == "GET":
        #get请求 传入 名字,然后在网页上显示:你好,名字
        #创建html模板h和manage.py同一级创建templates文件夹
        #该文件夹下创建user.html
        #http://127.0.0.1:8000/users?name=Tom
        name = request.GET['name'] 
        context = {
    
    'name': name}#用字典传输名字
        return render(request,'user.html',context)
    elif request.method == "POST":
        params = json.loads(request.body)
        name = params['name']
        score = params['score']
        u1 = User(name=name, score=score)
        u1.save()
        return HttpResponse('user_id'+str(u1.id)+"已经添加")
    else:
        return render(request,'user.html', {
    
    })

送信: [settings.pyの次のステートメントに最初にコメントします]
ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
これまでに、ユーザー送信情報を完成させてDjangoに渡し、リクエストを判断して運用してきました。

3.3クエリデータ

  • views.pyのユーザー関数
    if request.method == "GET":
        #get请求 传入 名字,然后在网页上显示:你好,名字
        #创建html模板h和manage.py同一级创建templates文件夹
        #该文件夹下创建user.html
        #http://127.0.0.1:8000/users?name=Tom
        id = request.GET['id'] 
        #在数据库中查询
        u1 = User.objects.get(id=id)
        context ={
    
    'id': u1.id, 'name': u1.name,'score': u1.score}
        return render(request,'user.html',context)
    
  • user.html
<h1>你好,{
   
   {name}}</h1>
<h1>学号,{
   
   {id}}</h1>
<h1>成绩,{
   
   {score}}</h1>
  • test.http
GET http://127.0.0.1:8000/users?id=1 HTTP/1.1

ここに画像の説明を挿入

3.4データの変更

  • views.pyのユーザー関数
    elif request.method == "PUT":
        params = json.loads(request.body)
        id = params['id']
        name = params['name']
        score = params['score']
        
        u1 = User.objects.get(id=id)#查询
        u1.name = name
        u1.score = score
        u1.id = id
        u1.save()
        return HttpResponse('user_id'+str(u1.id)+"已经修改")
  • test.http
PUT  http://127.0.0.1:8000/users/ HTTP/1.1
Content-Type: application/json

{
    
    
    "id":1,
    "name":"Tom",
    "score":88
}

ここに画像の説明を挿入
ここに画像の説明を挿入

総括する

質問1:ルーティングの概念を理解する

Webページのパスとファイルのパスを理解することはルーティングです:
次のように:

https://www.zhihu.com/question/439434803?utm_division=hot_list_page

質問はフォルダーに対応し、439434803は特定の問題ファイルに対応します。
ここに画像の説明を挿入
ここに画像の説明を挿入
質問2:Djangoは自動的に再起動
しますファイルを保存するたびに、Djangoは自動的に保存します(GIFを入力せずにテストを保存できます)
ここに画像の説明を挿入
質問3:settings.py構成DIR

これは正しいの:

'DIRS':[os.path.join(BASE_DIR、 'templates /')]、

これはエラー:(しかし、教師はこの構成を実行できます、私のものはエラーを示しています)

'DIRS':[BASE_DIR + '/ templates']、

次のエラーは常に表示されます
ここに画像の説明を挿入

これは今まで触れたことのない分野です。私は初心者です。この記事を書くのは間違いです。私の現在の理解はここにあります。間違いや個人的な意見があれば、皆さんに指摘してもらいたいです。

おすすめ

転載: blog.csdn.net/HG0724/article/details/112717997