Jadual Kandungan
Job List
Job Detail
Rumah pembangunan bahagian belakang Tutorial 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
Salin selepas log masuk

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

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

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',  ##取消原来的注释 
) 
Salin selepas log masuk

修改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)),  ###取消注释 

Salin selepas log masuk

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

manage.py syncdb
Salin selepas log masuk

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

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

manage.py runserver 
Salin selepas log masuk

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

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

pip install docutils
Salin selepas log masuk

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

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

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

manage.py startapp myapp
Salin selepas log masuk

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

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

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

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

Salin selepas log masuk

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

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

Salin selepas log masuk

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

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

Salin selepas log masuk

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

manage.py runserver
Salin selepas log masuk

访问: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) 
Salin selepas log masuk

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) 
Salin selepas log masuk

重启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) 
Salin selepas log masuk

重启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下 
) 
Salin selepas log masuk

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 %} 
Salin selepas log masuk

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 %} 
Salin selepas log masuk

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 %}
Salin selepas log masuk


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)) 
Salin selepas log masuk

方法二:

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}) 

Salin selepas log masuk

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})  

Salin selepas log masuk

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')),
Salin selepas log masuk

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

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Muat turun DeepSeek Xiaomi Cara Muat turun DeepSeek Xiaomi Feb 19, 2025 pm 05:27 PM

Bagaimana untuk memuat turun DeepSeek Xiaomi? Cari "DeepSeek" di kedai aplikasi Xiaomi. Kenal pasti keperluan anda (fail carian, analisis data), dan cari alat yang sepadan (seperti pengurus fail, perisian analisis data) yang termasuk fungsi DeepSeek.

DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek Feb 19, 2025 pm 04:54 PM

DeepSeek adalah alat carian dan analisis pintar yang kuat yang menyediakan dua kaedah akses: versi web dan laman web rasmi. Versi web adalah mudah dan cekap, dan boleh digunakan tanpa pemasangan; Sama ada individu atau pengguna korporat, mereka dapat dengan mudah mendapatkan dan menganalisis data besar-besaran melalui DeepSeek untuk meningkatkan kecekapan kerja, membantu membuat keputusan dan menggalakkan inovasi.

Bagaimana untuk mengemas kini versi terbaru Bybit Exchange? Adakah terdapat kesan jika tidak dikemas kini? Bagaimana untuk mengemas kini versi terbaru Bybit Exchange? Adakah terdapat kesan jika tidak dikemas kini? Feb 21, 2025 pm 10:54 PM

Cara untuk mengemas kini pertukaran Bybit berbeza mengikut platform dan peranti: Mudah Alih: Semak kemas kini dan pasang di App Store. Klien Desktop: Semak kemas kini dalam menu Bantuan dan pasang secara automatik. Laman web: Anda perlu mengakses laman web rasmi secara manual untuk kemas kini. Kegagalan untuk mengemas kini pertukaran boleh membawa kepada kelemahan keselamatan, batasan fungsional, isu keserasian dan mengurangkan kecekapan pelaksanaan transaksi.

PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? PI Node Teaching: Apakah nod pi? Bagaimana cara memasang dan menyediakan nod pi? Mar 05, 2025 pm 05:57 PM

Penjelasan dan Panduan Pemasangan Terperinci untuk Pinetwork Nodes Artikel ini akan memperkenalkan ekosistem pinetwork secara terperinci - nod pi, peranan utama dalam ekosistem pinetwork, dan menyediakan langkah -langkah lengkap untuk pemasangan dan konfigurasi. Selepas pelancaran Rangkaian Ujian Blockchain Pinetwork, nod PI telah menjadi bahagian penting dari banyak perintis yang aktif mengambil bahagian dalam ujian, bersiap sedia untuk pelepasan rangkaian utama yang akan datang. Jika anda tidak tahu kerja pinet, sila rujuk apa itu picoin? Berapakah harga untuk penyenaraian? Penggunaan PI, perlombongan dan analisis keselamatan. Apa itu Pinetwork? Projek Pinetwork bermula pada tahun 2019 dan memiliki syiling pi cryptocurrency eksklusifnya. Projek ini bertujuan untuk mewujudkan satu yang semua orang boleh mengambil bahagian

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Terdapat banyak cara untuk memasang DeepSeek, termasuk: Menyusun dari Sumber (untuk pemaju berpengalaman) menggunakan pakej yang dikompilasi (untuk pengguna Windows) menggunakan bekas docker (untuk yang paling mudah, tidak perlu bimbang tentang keserasian) Dokumen rasmi dengan berhati -hati dan menyediakannya sepenuhnya untuk mengelakkan masalah yang tidak perlu.

Bagaimana anda bertanya kepadanya Deepseek Bagaimana anda bertanya kepadanya Deepseek Feb 19, 2025 pm 04:42 PM

Kunci untuk menggunakan DeepSeek dengan berkesan adalah dengan bertanya dengan jelas: menyatakan soalan secara langsung dan khusus. Berikan maklumat khusus dan maklumat latar belakang. Untuk pertanyaan yang kompleks, pelbagai sudut dan penolakan pendapat dimasukkan. Fokus pada aspek tertentu, seperti kemunculan prestasi dalam kod. Simpan pemikiran kritikal mengenai jawapan yang anda dapatkan dan membuat pertimbangan berdasarkan kepakaran anda.

Cara Mencari DeepSeek Cara Mencari DeepSeek Feb 19, 2025 pm 05:18 PM

Hanya gunakan fungsi carian yang datang dengan DeepSeek. Walau bagaimanapun, untuk carian yang tidak popular, maklumat terkini atau masalah yang perlu dipertimbangkan, perlu menyesuaikan kata kunci atau menggunakan penerangan yang lebih spesifik, menggabungkannya dengan sumber maklumat masa nyata yang lain, dan memahami bahawa DeepSeek hanyalah alat yang memerlukannya Strategi carian yang aktif, jelas dan halus.

Cara Program DeepSeek Cara Program DeepSeek Feb 19, 2025 pm 05:36 PM

DeepSeek bukan bahasa pengaturcaraan, tetapi konsep carian yang mendalam. Melaksanakan DeepSeek memerlukan pemilihan berdasarkan bahasa yang ada. Untuk senario aplikasi yang berbeza, perlu memilih bahasa dan algoritma yang sesuai, dan menggabungkan teknologi pembelajaran mesin. Kualiti kod, pemeliharaan, dan ujian adalah penting. Hanya dengan memilih bahasa pengaturcaraan yang betul, algoritma dan alat mengikut keperluan anda dan menulis kod berkualiti tinggi dapat dilaksanakan dengan jayanya.

See all articles