記事のディレクトリ
PythonWebフレームワーク
- Django :完全に機能し、すべてが使いやすい
- フラスコ:小さくて美しい、あなたはそれを自分で組み立てる必要があります、柔軟
1つは、Djangoの基本です
1.1インストール
pip install django
pip install mysqlclient
1.2.djangoを使用してWebサーバープロジェクトを作成します
django-adminstartprojectブログ
1.3。ウェブサイトサービスを実行する
python manage.py runserver
-
最初のブログフォルダを入力して、以下を実行します。
-
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リクエスト
- 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']、
次のエラーは常に表示されます