日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pycharm python部署_使用PyCharm配合部署Python的Django框架的配置纪实

發布時間:2025/3/11 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pycharm python部署_使用PyCharm配合部署Python的Django框架的配置纪实 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝軟件安裝 Python 2.7、PyCharm、pip(Python包管理工具)、Django ( pip install Django)

部署PyCharm 新建Django工程

完成后,其目錄如下:

子目錄MyDjangoProject下表示工程的全局配置,分別為setttings.py、urls.py和wsgi.py,其中setttings.py包括了系統的數據庫配置、應用配置和其他配置,urls.py則

表示web工程Url映射的配置。

子目錄student則是在該工程下創建的app,包含了models.py、tests.py和views.py等文件

templates目錄則為模板文件的目錄

manage.py是Django提供的一個管理工具,可以同步數據庫等等

啟動創建完成后,就可以正常啟動了。點擊Run 按鈕,啟動時報錯了:

Traceback (most recent call last):

File "D:/workspace/MyDjangoProject/manage.py", line 10, in

execute_from_command_line(sys.argv)

File "D:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line

utility.execute()

File "D:\Python27\lib\site-packages\django\core\management\__init__.py", line 312, in execute

django.setup()

File "D:\Python27\lib\site-packages\django\__init__.py", line 18, in setup

apps.populate(settings.INSTALLED_APPS)

File "D:\Python27\lib\site-packages\django\apps\registry.py", line 89, in populate

"duplicates: %s" % app_config.label)

django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: admin

應該是admin配置沖突了,打開setttings.py文件,發現admin配置重復了

INSTALLED_APPS = (

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'django.contrib.admin',

'student',

)

注釋掉其中一行后(為什么會有這個問題,估計是個bug),重新啟動,ok

web工程添加頁面

此時,我們尚沒有寫一行代碼,程序就duang跑起來了! 快添加一個Hello World的頁面吧。

打開student/views.py文件,輸入以下內容

def sayHello(request):

s = 'Hello World!'

current_time = datetime.datetime.now()

html = '

%s

%s

' % (s, current_time)

return HttpResponse(html)

打開url.py文件,需要進行url映射的配置:

url(r'^student/', sayHello)

當用戶輸入http://**/student 時,便會調用sayHello方法,該方法通過HttpResponse()將頁面內容作為響應返回。

重啟服務,訪問http://localhost:8000/student/

在views.py頁面可以將頁面需要的元素通過字符串的形式,調用HttpResponse()類作為響應返回到瀏覽器。但這樣,頁面邏輯和頁面混合在一起,手寫起來很繁瑣,工作量比較大。如果我們需要展示一些動態的數據,而頁面基本不改變的情況下,該怎么做呢?

比如在用戶訪問 http://localhost:8000/student/ 時,我們想動態展示一些學生的數據。可以這樣做:

首先在templates目錄下,新建 student.html文件,該文件作為模板,內容如下:

{% for student in students %}

id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}

{% endfor %}

修改 views.py文件,添加方法showStudents()

def showStudents(request):

list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]

return render_to_response('student.html',{'students': list})

該方法將list作為動態數據,通過render_to_response方法綁定到模板頁面student.html上。

添加url映射,url(r'^showStudents/$', showStudents)

修改settings.py模板配置:'DIRS': [BASE_DIR+r'\templates'],

重啟服務,訪問http://localhost:8000/showStudents,出現:

至此,我們已可以正常將一些“動態”數據綁定到模板上了。但是怎么樣訪問數據庫呢?

從數據庫獲取需要的數據,展示在頁面上?

首先需要安裝數據庫驅動啦,即mysql_python,

接著配置數據庫連接:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'student',

'USER': 'root',

'PASSWORD': '1234',

'HOST': '127.0.0.1',

'PORT': '3306',

#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

}

}

配置完成之后,需要檢測數據庫配置是否正確,使用 manage.py shell命令,進入shell交互界面:

輸入:

from django.db import connection

cursor = connection.cursor()

如果不報錯,說明配置正確。

創建model,打開models.py,定義model如下:

class Student(models.Model)

id = models.BigIntegerField

name = models.CharField(max_length=20, default='a')

然后調用 manage.py syncdb

正常情況下,該步驟做完之后,model 會和數據庫保持一致性。但是在測試中,命令執行成功后,卻發現數據庫并沒有建立該表。

對于該種情況,做如下操作即可正常:

(1)注釋掉models.py文件代碼,執行 manage.py makemigerations student

【和manage.py migerate --fake】

(2)打開注釋,執行【 manage.py makemigerations student和 】manage.py migerate命令

通過以上兩步,便可正常操作了

views.py中添加方法:showRealStudents

def showRealStudents(request):

list = Student.objects.all()

return render_to_response('student.html', {'students': list})

urls.py添加映射 url(r'^showRealStudents/$', showRealStudents)

重啟服務,打開連接:http://localhost:8000/showRealStudents

頁面輸出正常。

至此,使用Django,可以正常操作數據庫,自定義模板,在頁面展示數據了。

服務器由于Django自帶輕量級的server,因此默認使用該server,但實際生產中是不允許這么干的,生產環境中通常使用Apache Httpd Server結合mod_wsgi.so來做后端服務器。

以下部署環境為:Python2.7.6

1、安裝httpd-2.2.25-win32-x86-no_ssl.msi

2、將下載好的mod_wsgi.so 放在 D:\Program Files\Apache Software Foundation\Apache2.2\modules 模塊下。

3、在新建的web工程 MyDjangoProject目錄下新建 django.wsgi文件

內容如下(相應的目錄需要修改):

import os

import sys

djangopath = "D:/Python27/Lib/site-packages/django/bin"

if djangopath not in sys.path:

sys.path.append(djangopath)

projectpath = 'D:/workspace/MyDjangoProject'

if projectpath not in sys.path:

sys.path.append(projectpath)

apppath = 'D:/workspace/MyDjangoProject/MyDjangoProject'

if apppath not in sys.path:

sys.path.append(apppath)

os.environ['DJANGO_SETTINGS_MODULE']='MyDjangoProject.settings'

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

4、修改httpd.conf ,添加如下:

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / "D:/workspace/MyDjangoProject/django.wsgi"

Options FollowSymLinks

AllowOverride None

Order deny,allow

Allow from all

ok,重啟server,頁面正常了。

在部署的過程中,遇到一個異常,如下:

The translation infrastructure cannot be initialized before the apps registry is ready

原因是django.wsgi一開始按照較為古老的寫法,改為新版本的寫法就Ok了。

本文標題: 使用PyCharm配合部署Python的Django框架的配置紀實

本文地址: http://www.cppcns.com/jiaoben/python/135340.html

總結

以上是生活随笔為你收集整理的pycharm python部署_使用PyCharm配合部署Python的Django框架的配置纪实的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。