python的web应用程序开发(Django框架)
1.安装Django并开启网页服务器
pip install django # 安装Django包
django-admin startproject mysite #在指定路径下新建一个mysite文件夹
我新建在默认路径下
本次课程只会修改其中的urls.py文件,新建一个views.py,其他文件都不会修改
python manage.py migrate # 可以不运行,设计数据库
运行成功后的界面
运行成功后多出了db.sqlite3的文件
用notepad打开后是这样的
python manage.py runserver #开启网页服务器
运行成功后的界面
以上两句命令都需要在mysite文件夹下运行(通过cd进入mysite文件夹),例子如下
C:\Users\吴悠>cd mysite
C:\Users\吴悠\mysite>python manage.py runserver
若在浏览器中访问:http://127.0.0.1:8000/ 显示It worked!则成功开启网页服务器(cmd窗口始终不能关闭)
2.静态网页:I love python
2.1 在mysite/mysite目录下新建views.py,该py文件内的内容如下:
from django.http import HttpResponse
def hello(request):
return HttpResponse("I love Python! ^-^")
2.2 修改mysite/mysite目录下urls.py为:
from django.conf.urls import url
from django.contrib import admin
from mysite.views import hello
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
]
2.3 访问 http://127.0.0.1:8000/hello/
3.动态网页:获取时间
3.1 修改views.py为:
from django.http import HttpResponse
import datetime
def hello(request):
return HttpResponse("I love Python! ^-^")
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
3.2 修改mysite/mysite目录下urls.py为:
from django.conf.urls import url
from django.contrib import admin
from mysite.views import hello,current_datetime
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
url(r'^time/$', current_datetime),]
3.3 访问 http://127.0.0.1:8000/time/
4.发布网页(pythonanywhere.com)
4.1 注册(pythonanywhere.com)
4.2 点击右上方的web进入Add a new web app
4.4 Create new web app:选择Django,选择Python version
4.5 创建好web app后,在该web app的页面下拉至code中的Source code,点击Go to directory
4.6 注意!此时进入的是mysite文件夹,需再次点击左侧菜单栏的mysite,进入mysite/mysite在该页面上传views.py及urls.py(注意.py)
4.7 点击左上角的pythonanywhere图案,回到首页,重新“Open Web tab”,点击绿色的Reload
4.8 打开Reload上方提供的网址…….pythonanwhere.com,即可
例如:
http://ilovemichael0804.pythonanywhere.com/time/http://ilovemichael0804.pythonanywhere.com/hello/ 5.模板系统
5.1 修改views.py为:
from django.template import Template, Context
def LovePython(request):
now = datetime.datetime.now()
fp = open('C:\Users\Dr.He\Desktop\Courses\Python\Lecture 17 -Django\mysite\mysite\static\ILovePythonTemplate.html')
# fp =open('/home/ilovepython666/mysite/mysite/static/ILovePythonTemplate.html')
t = Template(fp.read())
fp.close()
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
有一个需要注意的地方:本地测试时,fp为稍后创建的html文件所在路径,理论上放在任何地方都可以,上方代码中的fp需修改为自己电脑上ILovePythonTemplate.html所在地址
#老师电脑中文件的位置
fp = open(‘C:\Users\吴悠\Desktop\Courses\Python\Lecture 17 -Django\mysite\mysite\static\ILovePythonTemplate.html’)
#我电脑中文件的位置
fp = open(‘C:\Users\吴悠\mysite\mysite\static\ILovePythonTemplate.html’)
5.2 新增ILovePythonTemplate.html文件(具体路径没关系,与views.py中fp相对应即可)
<html>
<head>
</head>
<body>
<h1>I love python</h1>
Jibo He
{{ current_date }}
</body>
</html>
5.3 更新urls.py为:
from django.conf.urls import url
from django.contrib import admin
from mysite.views import hello,current_datetime,LovePython
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/$', hello),
url(r'^time/$', current_datetime),
url(r'^love/$', LovePython),]
5.4 本地测试
http://127.0.0.1:8000/love/
5.5 发布
在前面发布的基础上在同样的位置重新上传urls.py和views.py,覆盖之前上传的,并且上传ILovePythonTemplate.html文件
上传前,views.py中的fp需要修改,不能是本地路径。例如:
老师将.html文件上传到‘/home/ilovepython666/mysite/mysite/static’下
fp =open(’/home/ilovepython666/mysite/mysite/static/ILovePythonTemplate.html’)
我将.html文件上传到‘/home/ilovemichael0804/mysite/mysite/’下
fp = open(’/home/ilovemichael0804/mysite/mysite/ILovePythonTemplate.html’)
打开…….pythonanywhere.com/love/
例如:http://ilovemichael0804.pythonanywhere.com/love/