亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Windows下Python的Django框架環境部署及應用編寫入門

2020-01-04 17:38:45
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Windows下Python的Django框架環境部署及程序編寫入門,Django在Python的框架中算是一個重量級的MVC框架,本文將從程序部署開始講到hellow world web應用的編寫,需要的朋友可以參考下
 

環境搭建
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__.pymanage.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__.pymodels.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>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>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/(?P<job_id>/d+)/$',('mydjango.myapp.views.detail')),

然后重啟服務后,訪問http://127.0.0.1:8000/job/

ok,所有的結構都已經用到了,剩下的就是想出一個有趣的項目趕緊上手吧!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩另类| 亚洲成人激情视频| 欧美精品一区二区免费| 国产不卡精品视男人的天堂| 亚洲在线第一页| 国产精品视频色| 国产在线精品成人一区二区三区| 亚洲人高潮女人毛茸茸| 孩xxxx性bbbb欧美| 欧美大秀在线观看| 欧美高清在线视频观看不卡| 狠狠色狠狠色综合日日五| 亚洲成人黄色在线| 欧美一级片免费在线| 欧美精品久久久久久久免费观看| 欧美国产第二页| 国产综合在线观看视频| 亚洲自拍欧美另类| 日本精品免费观看| 欧美成人激情视频免费观看| 日本精品久久久久久久| 欧洲午夜精品久久久| 国产成人福利夜色影视| 清纯唯美日韩制服另类| 91精品视频在线| 91爱爱小视频k| 欧美激情女人20p| 日韩av网站在线| 日本一区二区三区在线播放| 18一19gay欧美视频网站| 一区二区三区久久精品| 国产精品久久久久久久久粉嫩av| 日韩美女av在线| 福利一区视频在线观看| 日韩美女视频免费看| 8x海外华人永久免费日韩内陆视频| 国产午夜精品全部视频在线播放| 91成人性视频| 国产精欧美一区二区三区| 日韩精品免费视频| 久久人人爽人人爽人人片亚洲| 国产精品一区二区三区在线播放| 亚洲网站在线观看| 91高清免费在线观看| 亚洲视频网站在线观看| 欧美国产日韩精品| 久久精品99久久久久久久久| 在线精品高清中文字幕| 久久成人精品视频| 亚洲精品久久久久久久久久久| 91系列在线观看| 亚洲欧美国产精品久久久久久久| 久久久中文字幕| 91国内揄拍国内精品对白| …久久精品99久久香蕉国产| 国产玖玖精品视频| 成人精品一区二区三区电影免费| 国产精品99久久久久久人| 91九色在线视频| 欧美老女人在线视频| 精品久久国产精品| 欧美日韩一区二区免费视频| 国产一区二区丝袜| 亚洲天堂男人天堂女人天堂| 国产精品久久久久久超碰| 亚洲欧美国产va在线影院| 国产亚洲精品91在线| 日韩欧美国产激情| 日本不卡视频在线播放| 日韩欧美aⅴ综合网站发布| 欧美成人免费va影院高清| 国产91精品最新在线播放| 国产精品久久久久999| 久久激情视频免费观看| 久久久国产精品免费| 欧美国产日韩一区二区在线观看| 精品久久久久久久中文字幕| 色综合视频一区中文字幕| 亚洲v日韩v综合v精品v| 色综合亚洲精品激情狠狠| 国产成人精品视频在线| 国产91在线播放九色快色| 亚洲国产精品va在看黑人| 亚洲视频视频在线| 久久久久久久久久久成人| 成人黄色在线播放| 亚洲一区美女视频在线观看免费| 国产aⅴ夜夜欢一区二区三区| 国产精品成av人在线视午夜片| 狠狠色狠狠色综合日日小说| 成人免费看片视频| 国产日韩精品电影| 久久精品国产视频| 成人激情免费在线| 日韩va亚洲va欧洲va国产| 尤物yw午夜国产精品视频| 国产小视频国产精品| 亚洲一区美女视频在线观看免费| 国产视频欧美视频| 欧美激情二区三区| 国产精品成人一区| 按摩亚洲人久久| 68精品国产免费久久久久久婷婷| 久久亚洲精品成人| 欧美一级黄色网| 欧美激情欧美激情在线五月| 国产精品自产拍高潮在线观看| 亚洲aa在线观看| 91欧美激情另类亚洲| 日韩精品极品视频| 亚洲精品自产拍| 成人妇女免费播放久久久| 欧美成人精品在线| 国产精品三级久久久久久电影| 国产精国产精品| 午夜精品一区二区三区在线视频| 色琪琪综合男人的天堂aⅴ视频| 欧美猛交ⅹxxx乱大交视频| 午夜精品视频在线| 青青草原成人在线视频| 日韩av在线网页| 日本乱人伦a精品| 精品国产自在精品国产浪潮| 亚洲精品黄网在线观看| 中文字幕亚洲欧美日韩2019| 日韩欧美在线免费| 亚洲欧美在线免费| 一区二区三欧美| 国产精品自拍视频| 日韩欧美精品在线观看| 亚洲国产私拍精品国模在线观看| 国产日韩欧美黄色| 亚洲欧美成人精品| 国产精品免费视频久久久| 国产亚洲综合久久| 欧美精品www在线观看| 欧美亚洲另类激情另类| 国产在线视频91| 日韩欧美一区二区三区| 亚洲大胆人体av| 亚洲影视中文字幕| 成人激情视频在线| 91人人爽人人爽人人精88v| 中文字幕免费国产精品| 欧美电影免费看| 亚洲精品视频免费在线观看| 久久久国产视频91| 奇米一区二区三区四区久久| 91精品国产综合久久久久久久久| 黄网站色欧美视频| 日本韩国欧美精品大片卡二| 日韩精品视频免费| 日韩av电影中文字幕| 亚洲免费视频网站| 欧美激情第1页| 国产精品一区电影| 久久久女人电视剧免费播放下载| 精品无码久久久久久国产| 久久香蕉精品香蕉| 国产成人综合精品在线| 亚洲免费伊人电影在线观看av| 国产精品偷伦视频免费观看国产| 欧美伊久线香蕉线新在线| 久久好看免费视频|