使用PyCharm配合部署Python的Django框架的配置纪实
安装软件 部署 完成后,其目录如下: 子目录MyDjangoProject下表示工程的全局配置,分别为setttings.py、urls.py和wsgi.py,其中setttings.py包括了系统的数据库配置、应用配置和其他配置,urls.py则 Traceback (most recent call last): File "D:/workspace/MyDjangoProject/manage.py",line 10,in <module> execute_from_command_line(sys.argv) File "D:Python27libsite-packagesdjangocoremanagement__init__.py",line 338,in execute_from_command_line utility.execute() File "D:Python27libsite-packagesdjangocoremanagement__init__.py",line 312,in execute django.setup() File "D:Python27libsite-packagesdjango__init__.py",line 18,in setup apps.populate(settings.INSTALLED_APPS) File "D:Python27libsite-packagesdjangoappsregistry.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工程添加页面 def sayHello(request): s = 'Hello World!' current_time = datetime.datetime.now() html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s,current_time) return HttpResponse(html) 打开url.py文件,需要进行url映射的配置:
url(r'^student/',sayHello) 当用户输入http://**/student 时,便会调用sayHello方法,该方法通过HttpResponse()将页面内容作为响应返回。 在views.py页面可以将页面需要的元素通过字符串的形式,调用HttpResponse()类作为响应返回到浏览器。但这样,页面逻辑和页面混合在一起,手写起来很繁琐,工作量比较大。如果我们需要展示一些动态的数据,而页面基本不改变的情况下,该怎么做呢? <!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上。 至此,我们已可以正常将一些“动态”数据绑定到模板上了。但是怎么样访问数据库呢? 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() class Student(models.Model) id = models.BigIntegerField name = models.CharField(max_length=20,default='a') def showRealStudents(request): list = Student.objects.all() return render_to_response('student.html',{'students': list}) urls.py添加映射 url(r'^showRealStudents/$',showRealStudents) 服务器 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,页面正常了。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Python动态加载模块的3种方法
- 使用Scrapy XPATH获取属性名称
- python – 即使__init__.py退出,Pycharm也无法识别包
- python – 主厨安装uwsgi libiconv.so.2没有这样的文件或目
- python – 用numpy进行矢量操作
- python – 软件设计与开发专业:Pygame Smudge Trails
- Python自动化测试工具Splinter简介和使用实例
- 自己写了一款支付神器!利用Python实现的!某云给60w年薪被
- python – 为什么numpy ndarray的insert和append会返回一个
- python – 使用pandas返回hdf文件中所有数据集的列表