Django WEB开发(一)一个简单的表单页面
环境:
-
macos pycharm+navicat+virtualenv python2.7(anaconda虚拟环境)+Django1.9.5
在pycharm中创建new Django project,平台会创建一个Django架构的项目。
1、创建新项目之后,首先,创建app
1)选择Tools>Run manage.py task...之后,页面下部显示出“manage.py@项目名>”:
2)使用startapp命令创建新app,譬如startapp message创建一个名为message的app
可以看到在我们项目的默认app(django_start)下面多了一哥名为message的app。
需要将新建的app加到settings.py的INSTALLED_APPS字典中,如下:
2、作为网站开发,还需要一些创建其他文件夹:
1)需要存放静态文件(css/js等),创建一个文件夹“static”;
2)同时还需要创建日志文件夹“log”保存日志
3)需要创建用户上传的各种文件的目录“media”
注意,当我们的web项目逐渐增大的时候,app数量可能会很多,根目录下app多了,看上去就会混乱,可以将多个app放在新建的‘apps文件夹中
但这样,在manage.py中引入message app中的文件时(譬如views.py),就需要引如全路径(from apps.message import views),有一种巧妙的方法,即将apps文件夹mark为source Root,将其设为全局搜索路径,之后就可以直接引用:“from message import views ”
以上方法只能在pycharm中有效,要想使用命令后运行的时候也有效,就需要在/apps/djangostart/settings.py中设置,将apps作为根搜索路径。
小例子
一个表单
1、将html文件和css文件分别导入到/django_start/templates和/django_start/static/css目录下。
2、设置mysql数据库连接,在settings中找到DATABASES字典,设置如下:
DATABASES = { default: { ENGINE: django.db.backends.mysql, NAME: testdjango, USER: root, PASSWORD:root, HOST:127.0.0.1 } }
其中testdjango是我们预先在mysql中创建的一个database(可用navicat创建)
到目前位置,直接Tools>Run manage.py task...会报错,提示‘No module named MySQLdb’,这是因为还没有安装mysql的pyrhon驱动,可在虚拟环境中安装,实际操作中发现conda install mysqlclient(而不是mysql-python包 )有效。
3、Tools>Run manage.py task...
4、在manage.py@django_start> 窗口输入“makemigrations”命令;。
再输入”migrate”命令,此操作之后,在navicat中可以查看到,数据库中多了一些表(默认)。
此时可以run或者debug,运行成功,可以在127.0.0.0:8000端口访问web站点
5、接下来,设置我们的表单页面
1)首先配置urls.py,加入表单url——from
urlpatterns = [ url(r^admin/, admin.site.urls),#默认生成的url,用于admin后台 url(r^form/$, ),# ^,$分别表示开头和结尾 ]
其中,url function的第二个参数是一个view对象,本例中应该为表单对应的view
2)进入message app,选择views.py
加一个函数:
def getfrom(request): return render(request,message_from.html)
3)回到urls.py 将函数对象填入url
from message.views import getfrom urlpatterns = [ url(r^admin/, admin.site.urls),#默认生成的url,用于admin后台 url(r^form/$, getfrom ),# ^,$分别表示开头和结尾 ]
此时做debug有可能会发现,127.0.0.1:8000/from/会报错,提示
即找不到这个template(html文件),其实是需要将template文件的路径在settings文件中注册
4)修改settings文件中的TEMPLATES字典,在‘DIRS’参数中加入html文件路径,操作如下
DIRS: [os.path.join(BASE_DIR, templates)],
其中BASE_DIR在setting中已经定义,表示根目录
5)此时run或者debug ,在127.0.0.1:8000/form会出现我们编写的表单样式:
小节:配置流程