python如何使用django

导读:本篇文章首席CTO笔记来给大家介绍有关python如何使用django的相关内容,希望对大家有所帮助,一起来看看吧。

如何使用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 module

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 = \'htmlhead/headbodyh1 %s /h1p %s /p/body/html\' % (s, current_time)

return HttpResponse(html)

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

url(r\'^student/\', sayHello)

当用户输入http://**/student 时,便会调用sayHello方法,该方法通过HttpResponse()将页面内容作为响应返回。

重启服务,访问

在views.py页面可以将页面需要的元素通过字符串的形式,调用HttpResponse()类作为响应返回到浏览器。但这样,页面逻辑和页面混合在一起,手写起来很繁琐,工作量比较大。如果我们需要展示一些动态的数据,而页面基本不改变的情况下,该怎么做呢?

比如在用户访问 时,我们想动态展示一些学生的数据。可以这样做:

首先在templates目录下,新建 student.html文件,该文件作为模板,内容如下:

!DOCTYPE html

html

head

title/title

/head

body

ul

{% for student in students %}

li

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

/li

{% endfor %}

/ul

/body

/html

修改 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\'],

重启服务,访问,出现:

至此,我们已可以正常将一些“动态”数据绑定到模板上了。但是怎么样访问数据库呢?

从数据库获取需要的数据,展示在页面上?

首先需要安装数据库驱动啦,即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)

重启服务,打开连接:

页面输出正常。

至此,使用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\"

Directory \"D:/workspace/MyDjangoProject/\"

Options FollowSymLinks

AllowOverride None

Order deny,allow

Allow from all

/Directory

ok,重启server,页面正常了。

在部署的过程中,遇到一个异常,如下:

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

原因是django.wsgi一开始按照较为古老的写法,改为新版本的写法就Ok了。

python怎么搭建django框架

运行环境

Windows 7(64位) + Python 2.7 + Django 1.7.1

1.安装django框架

当然你首先要有python环境,对于学python的朋友们这个就不多说了~~

我使用的是setuptools工具来安装的,setuptools是python中安装第三方模块常用的安装工具

1.1安装setuptools工具(如果会安装的可以直接跳过)

先从这个地址下载ez_setup.py:

(在页面最下面)

我下载的是setuptools-7.0.zip,将其解压,将解压的setuptools-7.0文件放到一个目录,我这里假定将其放到C:\\workspace目录下

打开命令行cmd,在cmd中切换到C:\\workspace\\setuptools-7.0,即setuptools-7.0安装目录

运行命令:

python ez_setup.py

该命令会安装setuptools工具,安装后打开你的python安装目录下的Scripts目录(我的是C:\\Python27\\Scripts),会看到easy_install.exe等文件

注意将python安装目录下的Scripts目录(我的是C:\\Python27\\Scripts)添加到环境变量path,否则下面的easy_install命令会报错

1.2安装django框架

在cmd中输入:

easy_install django

有的安装过程可能会提示缺少vc++包,根据提示网址(我忘了~)下载包,我下载的是VCForPython27.msi,安装vc++后再执行安装

这样就自动安装了django,是不是很方便,哈哈

2.创建django项目,这里假定在c:\\workspace\\djangoTest下创建(和java有点差别,java是直接创建项目就可以了,python是要先创建项目再在项目里创建app)

进入c:\\workspace\\djangoTest目录,输入:

django-admin startproject mytodo #网上很多是python django-admin.py startproject mytodo,版本不一样可能命令有细微差别

就创建了mytodo项目

3.启动调试服务器

进入c:\\workspace\\djangoTest\\djangoTest\\mytodo目录:

cd mytodo

然后输入:

python manage.py runserver

在浏览器中输入,看能否访问页面

4.创建app

输入命令:python manage.py startapp todo

就在mytodo项目下创建了一个app,即todo

编辑mytodo/settings.py文件,在INSTALLED_APPS添加条目todo

INSTALLED_APPS = (

\'django.contrib.auth\',

\'django.contrib.contenttypes\',

\'django.contrib.sessions\',

\'django.contrib.sites\',

\'todo\',

)

即在最后添加一行todo(有的版本是项目名+app名,即mytodo.todo)

再次输入:python manage.py runserver看看你app是否配置好了,养成边写边测试的好习惯,哈哈~

5.配置数据库

django默认的是使用SQLite数据库作为后台数据库,仍然打开mytodo/settings.py,可以看到下面一段:

DATABASES = {

\'default\': {

\'ENGINE\': \'django.db.backends.sqlite3\',

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

}

}

这就是django项目的数据库配置,默认是使用SQLite,我们就使用使用默认配置,安装SQLite数据库,不需要修改配置文件

听到又要安装数据库,大家肯定又觉得好复杂,其实在python里安装三方模块,数据库什么的很简单,一条命令就可以搞定了~~

输入命令:

easy_install pysqlite

这样就安装了SQLite数据库

安装完数据库,我们也测试一下,输入命令:

python manage.py syncdb

出现successfully提示就安装成功了,打开mytodo目录,看看里面是否有一个db.sqlite3文件,这就是上面配置的数据库文件

python脚本中使用django orm

项目开发中,经常会遇到一个需求:将数据从旧数据库中导入到新数据库中。比如从SQL Server中导入到新的My SQL数据库中。一般可以借助pymysql和pymssql写脚本完成导入。但是字段特别多的时候,如果能借助Django 的orm, 则会方便很多。

在manage.py目录创建py文件 import_data.py

app.models

settings.py中配置多个数据库

如何用python做web开发 django环境配置

下载

python-2.7.2.msi

Django-1.3.1.tar.gz

Django暂时只支持python

2.4

~

2.7,

在Django-1.3.1\\docs\\intro\\install.txt中有说明:

Being

a

Python

Web

framework,

Django

requires

Python.

It

works

with

any

Python

version

from

2.4

to

2.7

(due

to

backwards

incompatibilities

in

Python

3.0,

Django

does

not

currently

work

with

Python

3.0;

安装python-2.7.2,并添加环境变量

D:\\Python27;D:\\Python27\\Scripts;

命令行进入Django-1.3.1目录,

安装django

python

setup.py

install

Django提供了tutorial

Django-1.3.1\\docs\\intro

新建站点

E:\\pythondjango-admin.py

startproject

mysite

启动django自带的web服务器

E:\\pythoncd

mysite

E:\\python\\mysitemanage.py

runserver

Validating

models...

errors

found

Django

version

1.3.1,

using

settings

\'mysite.settings\'

Development

server

is

running

at

Quit

the

server

with

CTRL-BREAK.

在浏览器中输入

浏览页面

ps:

在windows7中按上述步骤配置好后,出现下列情况

D:\\work\\pythondjango-admin.py

startproject

mysite

Usage:

django-admin.py

subcommand

[options]

[args]

...

很显然django-admin.py不参识别startproject命令,其它命令也不能识别。不过,另一种方式却可以

D:\\Python27\\Scriptspython

django-admin.py

startproject

mysite

这说明django-admin.py

后面的参数不能传递进去,可以通过修改注册表实现。

输入regedit,

进入

HKEY_CLASSES_ROOT\\py_auto_file\\shell\\open\\command

\"C:\\Python26\\python.exe\"

\"%1\"

change

it

to

\"C:\\Python26\\python.exe\"

\"%1\"

%*

成功解决了

python如何使用django  第1张

如何在pythonenv中使用高版本django

安装Virtualenv和Python3(因为有些Linux发行版默认没有安装Python3的)

sudo pip install virtualenv

sudo apt-get install python3

建立一个新的工作环境

virtualenv --no-site-packages --python=python3.4 test_env

如果出现The executable python does not exist 错误,那么可以这样使用

virtualenv --no-site-packages --python=3.4 test_env

其中,–no-site-packages表示不包括系统全局的Python安装包,这样会更令环境更干净

–python=python3.4指定Python的版本未系统已经安装了的Python3.4

test_env是建立的环境的名称

进入环境测试并安装Django

使用source test_env/bin/activate命令进入开发环境,然后查看Python版本,再使用pip install django安装django

➜ virtualenv

➜ virtualenv ls

test_env

➜ virtualenv source test_env/bin/activate # 如果是windows则是source test_env/Script/activate

(test_env)➜ virtualenv python

Python 3.4.0 (default, Apr 11 2014, 13:05:11)

[GCC 4.8.2] on linux

Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.

import django

Traceback (most recent call last):

File \"stdin\", line 1, in module

ImportError: No module named \'django\'

exit()

(test_env)➜ virtualenv pip install django

Collecting django

Using cached Django-1.7.3-py2.py3-none-any.whl

Installing collected packages: django

Successfully installed django-1.7.3

(test_env)➜ virtualenv python

Python 3.4.0 (default, Apr 11 2014, 13:05:11)

[GCC 4.8.2] on linux

Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.

import django

import django没有发生错误,证明已经成功安装Django了

如何在python文件中,引用django1.10的model

python

-m

django

--version

如果安装了Django,您应该将看到安装的版本。如果没有安装,你会得到一个错误,提示No

module

named

django。

本教程是为Django

1.10和Python

3.4或更高版本编写的。如果Django版本不匹配,您可以去官网参考您的对应Django版本的教程,或者将Django更新到最新版本。

如果你仍然在使用Python

2.7,你需要稍微调整代码,注意代码中的注释。

创建project

如果这是你第一次使用Django,你将需要处理一些初始设置。也就是说,这会自动生成一些建立Django项目的代码,但是你需要设置一些配置,包括数据库配置,Django特定的选项和应用程序特定的设置等等。

从命令行,cd进入您将存放项目代码的目录,然后运行以下命令:

django-admin

startproject

mysite

#

mysite为项目名

如果运行出错,请参见Problems

running

django-admin。这将在目录下生成一个mysite目录,也就是你的这个Django项目的根目录。它包含了一系列自动生成的目录和文件,具备各自专有的用途。

结语:以上就是首席CTO笔记为大家整理的关于python如何使用django的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-24
下一篇 2023-09-24

相关推荐

发表回复

登录后才能评论