目次
Job List
Job Detail
ホームページ バックエンド開発 Python チュートリアル Windows下Python的Django框架环境部署及应用编写入门

Windows下Python的Django框架环境部署及应用编写入门

Jun 10, 2016 pm 03:05 PM
django python windows

环境搭建
1、下载所需的软件包:
(1)python安装包
(2)django安装包
以下2个包其实是安装python包管理工具,在后面安装django文档包模块时会用到,下载网站是pypi
(1)setuptools.exe 
(2)pip

2、安装所需的软件包:
python安装包是exe,setuptools也是exe,所以直接双击安装即可,先安装
django、pip是python模块包:安装时先解压,而后进入目录后使用命令:python setup.py install 安装即可

3、测试python及django
python和setuptools因为是exe安装方式,已经帮你添加了环境变量,安装后可以直接使用
django、pip安装后需要手动把它们的安装目录添加到环境变量
新起cmd:输入python,看到能进入python交互解释器则python没有问题
输入django-admin.py --help 能看到使用帮助提示则说明安装成功

4、建立第一个django项目:
以下cmd命令会在当前目录下建立一个django项目djangoproject1:

django-admin.py startproject djangoproject1
ログイン後にコピー

这个项目目录下有4个文件:

__init__.py
manage.py   ###功能与django-admin.py相同的文件,只是这个主要用于管理当前项目
settings.py   ###当前项目的设置文件,比如:webapp目录的设置、数据库连接的设置、模板目录的设置等
urls.py       ###当前项目url导航的设置,用一个正则匹配模式这匹配url规则并映射到指定的文件去处理请求
ログイン後にコピー

5、安装django自带的admin应用,即安装一个webapp
修改setting.py文件中的如下内容:

DATABASES = { 
  'default': { 
    'ENGINE': 'sqlite3', #设置使用sqlite3数据库 
    'NAME': r'C:\Users\。。。。\test.db',           # sqlite3的文件路径 
    'USER': '',           # Not used with sqlite3. 
    'PASSWORD': '',         # Not used with sqlite3. 
    'HOST': '',           # Set to empty string for localhost. Not used with sqlite3. 
    'PORT': '',           # Set to empty string for default. Not used with sqlite3. 
  } 
} 
 
 
INSTALLED_APPS = ( 
  'django.contrib.auth', 
  'django.contrib.contenttypes', 
  'django.contrib.sessions', 
  'django.contrib.sites', 
  'django.contrib.messages', 
  'django.contrib.staticfiles', 
  # Uncomment the next line to enable the admin: 
  'django.contrib.admin',  ##取消原来的注释 
  # Uncomment the next line to enable admin documentation: 
  'django.contrib.admindocs',  ##取消原来的注释 
) 
ログイン後にコピー

修改urls.py问件中的如下内容:

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin ##取消注释 
admin.autodiscover()  ##取消注释 
 
  # Uncomment the admin/doc line below to enable admin documentation: 
  url(r'^admin/doc/', include('django.contrib.admindocs.urls')),  ###取消注释 
 
  # Uncomment the next line to enable the admin: 
  url(r'^admin/', include(admin.site.urls)),  ###取消注释 

ログイン後にコピー

6、同步admin应用的数据库:
在项目主目录下使用命令:

manage.py syncdb
ログイン後にコピー

会提示创建一个超级用户,输入yes并按照提示创建一个账号即可

7、测试admin应用:
使用命令启动django的服务:

manage.py runserver 
ログイン後にコピー

浏览器中输入地址:http://127.0.0.1:8000/admin/
如果出现登录界面则说明admin应用安装成功,使用第6步中创建的账号登录即可

8、安装admin的文档模块:
命令行输入:

pip install docutils
ログイン後にコピー

安装完成后重启django服务,访问地址http://127.0.0.1:8000/admin/doc/

9、使用和学习admin应用:
这个应用主要用于管理项目的应用的,同样可以很方面的管理数据库内容,如果想自己的项目也能在这里被管理则需要进行一个配置即可,后面将会有相关操作
默认其功能有:管理admin应用的用户、用户组;添加站点

10、创建自己的应用:
项目主目录下使用命令:

manage.py startapp myapp
ログイン後にコピー

命令会在当前目录下创建一个app的目录mysite,其下有文件:

__init__.py
models.py   ##用于创建数据模型的,即设计数据库结构的,在这里面配置到数据库的模块,django会自动帮你创建相应的数据库表结构
views.py    ##视图文件,用于响应用户请求并在处理后返回结果,这里面主要编写请求事件的响应函数
ログイン後にコピー

11、安装自己的应用:
和安装admin应用一样,修改settings.py文件

INSTALLED_APPS = ( 
    ...... 
    'djangoproject1.myapp',    ###添加这一句 
) 

ログイン後にコピー

12、创建第一个页面:
修改mysite目录下的views.py文件,内容如下:

from django.http import HttpResponse 
 
def home(request): 
  return HttpResponse("Hello Django") 

ログイン後にコピー

13、设置url请求页面:
修改urls.py内容如下:

urlpatterns = patterns('', 
  # Examples: 
  url(r'^$', 'djangoproject1.myapp.views.home', name='home'), ) 

ログイン後にコピー

14、测试自己的应用:
重启django服务,

manage.py runserver
ログイン後にコピー

访问:http://127.0.0.1:8000
如果出现:hello django 则说明设置成功


第一个app实现
在环境搭建好了的基础上我们还要继续做的就是往里面填内容了。也就是网页的实际内容,比如:页面内容,比如数据库内容,比如模块内容,比如css,js内容等,那么在django中是怎么整合这些的,在这里记录一下。
1、创建一个模式:
模式其实就是整个网站的数据模型,也就是数据库的结构,即数据表结构,所以创建一个模式就是设计一张数据表,只不过在django的模式里用代码形式来表示模式,然后它会帮助你自动生成响应的数据表及对应的关系,而且对支持的数据库都是统一的表示形式,即兼容性不错,是不是很方便啊!样例见下:
编写app目录中的models.py文件

from django.db import models 
 
class Location(models.Model): 
  city = models.CharField(max_length=50) 
  state = models.CharField(max_length=50, null=True, blank=True) 
  country = models.CharField(max_length=50) 
  def __str__(self): 
    if self.state: 
      return "%s, %s, %s" % (self.city, self.state, self.country) 
    else: 
      return "%s, %s" % (self.city, self.country) 
 
class Job(models.Model): 
  pub_date = models.DateField() 
  job_title = models.CharField(max_length=50) 
  job_description = models.TextField() 
  location = models.ForeignKey(Location) 
  def __str__(self): 
    return "%s (%s)" % (self.job_title, self.location) 
ログイン後にコピー

2、让模式生效:
在模式设计好了后就可以使用它,让它帮你干活啦,查看模式创建的表是否正确的命令为:manage.py sql app_dir, 这样可以查看表结构的原型了。在检查完表结构原型后就应用之,命令为:manage.py syncdb, 这个其实就是真正的在数据库中建表。

3、如何应用模式:
模式依然生效后就是如何去应用它,也就是获取其中的数据为我们服务;在views.py文件中包括如下代码即可调用具体的数据表;

from django.template import Context, loader 
from django.http import HttpResponse 
from myapp.models import Job 
 
 
def home(request): 
  object_list = Job.objects.order_by('-pub_date')[:10] 
  str_count = "The Count of job table is %s"%Job.objects.count() 
  str_job_desc = "<br>".str(join(Job.objects.all())) 
 
  return HttpResponse(str_count + "<br>" + str_job_desc) 
ログイン後にコピー

重启django,访问http://127.0.0.1:8000,如果出现字符信息说明正确,只是这时显示的是数据数据总数为0,内容为空而已

4、在admin中配置我的应用:
上面的内容没有数据,那么就造一些数据:一种是自己写sql去造;不过还有一种方法就是在admin应用中去造数据,当然首先是配置admin来管理我创建的应用。在我的应用目录中新建一个admin.py文件,其内容如下:

from django.contrib import admin 
from mydjango.myapp import models 
 
class DocumentAdmin(admin.ModelAdmin): 
  pass 
 
class CommentAdmin(admin.ModelAdmin): 
  pass 
 
admin.site.register(models.Location, DocumentAdmin) 
admin.site.register(models.Job, CommentAdmin) 
ログイン後にコピー

重启django,访问http://127.0.0.1:8000/admin, 就可以看到我的应用中的数据可以在这里管理了。

5、在admin中管理我的应用:
在admin中设置好我的应用后,就可以通过admin来为我的应用添加数据了。具体就是点击添加、输入内容、保存即可。等有了数据后我们在回到主页看看是不是页面内容就由内容了?

6、开始设置模板:
内容少的时候我们可以每个页面都自己写,但是当页面变多,而且还有很多相同部分时,我们就希望能不要写那些同样的东西了,那么模板就是为了解决这样的问题而出现的,在django中配置模板的方法是在项目主目录的settings.py文件中修改如下内容:

TEMPLATE_DIRS = ( 
  "C:/Users/xiaowu/workspace/mydjango/templates", ##注意斜线的格式,是/而不是\,即使在windows下 
) 
ログイン後にコピー

7、创建模板文件:
在settings.py文件设置的模板目录下新建模板文件,模板文件其实都是html文件,只是其中的内容包含一些特殊的占位符,在实际应用中会替换掉其中的内容;这些内容就是在代码里实现出来的数据了;而且模板还可以继承,这个也比较好用,就好像程序的代码块一样分的越细可重用性就越好。样例如下:
template主目录下的base.html文件内容

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
 <head> 
  <title>Company Site: {% block title %}Page{% endblock %}</title> 
  {% block extrahead %}{% endblock %} 
 </head> 
 <body> 
  {% block content %}{% endblock %} 
 </body> 
</html> 
template/mytemp目录下的base.html内容
[html] view plain copy
{% extends "base.html" %} 
 
{% block extrahead %} 
  <style> 
    body { 
      font-style: arial; 
    } 
    h1 { 
      text-align: center; 
    } 
    .job .title { 
      font-size: 120%; 
      font-weight: bold; 
    } 
    .job .posted { 
      font-style: italic; 
    } 
  </style> 
{% endblock %} 
ログイン後にコピー

template/mytemp目录下的job_list.html

{% extends "jobs/base.html" %} 
 
{% block title %}Job List{% endblock %} 
 
{% block content %} 
  <h1 id="Job-List">Job List</h1> 
  <ul> 
  {% for job in object_list %} 
    <li><a href="{{ job.id }}">{{ job.job_title }}</a></li> 
  {% endfor %} 
  </ul> 
{% endblock %} 
ログイン後にコピー

template/mytemp目录下的job_detail.html

{% extends "mytemp/base.html" %}
{% block title %}Job Detail{% endblock %}
{% block content %}
  <h1 id="Job-Detail">Job Detail</h1>
  <div class="job">
    <div class="title">
      {{ job.job_title }}
      -
      {{ job.location }}
    </div>
    <div class="posted">
      Posted: {{ job.pub_date|date:"d-M-Y" }}
    </div>
    <div class="description">
      {{ job.job_description }}
    </div>
  </div>
{% endblock %}
ログイン後にコピー


8、应用模板文件:
在django中是在views.py中具体的引用模板,具体方法见下:
方法一:

from django.template import Context, loader 
from django.http import HttpResponse 
from myapp.models import Job 
 
def home(request): 
  object_list = Job.objects.order_by('-pub_date')[:10] 
  t = loader.get_template('mytemp/job_list.html') 
  c = Context({ 
    'object_list': object_list, 
    }) 
  return HttpResponse(t.render(c)) 
ログイン後にコピー

方法二:

from django.shortcuts import get_object_or_404, render_to_response 
from myapp.models import Job 
 
def home(request,job_id): 
  job = get_object_or_404(Job, pk=job_id) 
  return render_to_response('mytemp/job_detail.html', 
               {'object': job}) 

ログイン後にコピー

9、最后的views.py文件内容如下:

from django.template import Context, loader 
from django.http import HttpResponse 
from myapp.models import Job 
from django.shortcuts import get_object_or_404, render_to_response 
 
def home(request): 
  return HttpResponse("Hello Django") 
 
   
def index(request):  
  object_list = Job.objects.order_by('-pub_date')[:10]  
  t = loader.get_template('mytemp/job_list.html')  
  c = Context({  
    'object_list': object_list,  
    })  
  return HttpResponse(t.render(c))  
   
   
def detail(request,job_id):  
  job = get_object_or_404(Job, pk=job_id)  
  return render_to_response('mytemp/job_detail.html',  
               {'object': job})  

ログイン後にコピー

9、配置index、detail视图的url,在urls.py添加如下内容:

url(r'^job/$', ('mydjango.myapp.views.index')),
url(r'^job/(&#63;P<job_id>\d+)/$',('mydjango.myapp.views.detail')),
ログイン後にコピー

然后重启服务后,访问http://127.0.0.1:8000/job/

ok,所有的结构都已经用到了,剩下的就是想出一个有趣的项目赶紧上手吧!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseek Xiaomiをダウンロードする方法 Deepseek Xiaomiをダウンロードする方法 Feb 19, 2025 pm 05:27 PM

Deepseek Xiaomiをダウンロードする方法は? Xiaomi App Storeで「Deepseek」を検索します。ニーズ(検索ファイル、データ分析)を特定し、DeepSeek関数を含む対応するツール(ファイルマネージャー、データ分析ソフトウェアなど)を見つけます。

Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Feb 19, 2025 pm 04:54 PM

DeepSeekは、Webバージョンと公式Webサイトの2つのアクセス方法を提供する強力なインテリジェント検索および分析ツールです。 Webバージョンは便利で効率的であり、公式ウェブサイトは包括的な製品情報、ダウンロードリソース、サポートサービスを提供できます。個人であろうと企業ユーザーであろうと、DeepSeekを通じて大規模なデータを簡単に取得および分析して、仕事の効率を向上させ、意思決定を支援し、イノベーションを促進することができます。

Bybit Exchangeの最新バージョンを更新する方法は?更新されていない場合、影響はありますか? Bybit Exchangeの最新バージョンを更新する方法は?更新されていない場合、影響はありますか? Feb 21, 2025 pm 10:54 PM

Bybit取引所の更新方法は、プラットフォームとデバイスによって異なります。モバイル:更新を確認し、App Storeにインストールします。デスクトップクライアント:ヘルプメニューの更新を確認し、自動的にインストールします。 Webページ:更新のために公式Webサイトに手動でアクセスする必要があります。交換の更新に失敗すると、セキュリティの脆弱性、機能的な制限、互換性の問題、およびトランザクション実行効率の低下につながる可能性があります。

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

どうやって彼にdeepseekに尋ねますか どうやって彼にdeepseekに尋ねますか Feb 19, 2025 pm 04:42 PM

DeepSeekを効果的に使用する鍵は、質問を明確にすることです。質問を直接および具体的に表現してください。特定の詳細と背景情報を提供します。複雑な問い合わせのために、複数の角度と反論の意見が含まれています。コードのパフォーマンスボトルネックなどの特定の側面に焦点を当てます。あなたが得る答えについて批判的な考えを維持し、あなたの専門知識に基づいて判断を下します。

DeepSeekを検索する方法 DeepSeekを検索する方法 Feb 19, 2025 pm 05:18 PM

DeepSeekに付属する検索機能を使用するだけです。ただし、不人気で最新の情報または考慮する必要がある検索の場合、キーワードを調整したり、より具体的な説明を使用したり、他のリアルタイム情報源と組み合わせたり、DeepSeekが必要なツールであることを理解する必要があります。アクティブで明確で洗練された検索戦略。

DeepSeekをプログラムする方法 DeepSeekをプログラムする方法 Feb 19, 2025 pm 05:36 PM

DeepSeekはプログラミング言語ではなく、深い検索の概念です。 DeepSeekの実装には、既存の言語に基づいて選択が必要です。さまざまなアプリケーションシナリオでは、適切な言語とアルゴリズムを選択し、機械学習技術を組み合わせる必要があります。コードの品質、保守性、テストが重要です。適切なプログラミング言語、アルゴリズム、ツールをお客様のニーズに応じて選択し、高品質のコードを作成することにより、DeepSeekを正常に実装できます。

See all articles