美文网首页
python Web框架(1):Django入门

python Web框架(1):Django入门

作者: 烂笔头2020 | 来源:发表于2020-05-11 17:09 被阅读0次

    参考书籍:《python编程从入门到实践》——【美】Eric Matthess
    下面直接用Django进行编写一个名为“学习笔记”的web应用程序,从中认识到它的作用和如何使用。

    项目名称:学习笔记
    作用:让用户能够记录感兴趣的主题,并在学习每个主题的过程中添加日志条目。“学习笔记”的主页对这个网站进行描述,并邀请用户注册或登录。用户登录后,就可以创建新主题、添加新条目以及阅读既有的条目。

    1、建立虚拟环境

    要使用Django首先要建立虚拟环境,Django仅在虚拟环境处于活动状态下时才能使用。

    关于Python3中venv虚拟环境:
    Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv。该venv模块提供了创建轻量级“虚拟环境”,提供与系统Python的隔离支持。每一个虚拟环境都有其自己的Python二进制(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套Python包。他最大的好处是,可以让每一个python项目单独使用一个环境,而不会影响python系统环境,也不会影响其他项目的环境。
    优点:
    1、使不同应用开发环境独立
    2、环境升级不影响其他应用,也不会影响全局的python环境
    3、防止系统中出现包管理混乱和版本冲突

    首先为新的项目建立一个目录,命名为learning_log,再在终端切换到该目录下,创建一个虚拟环境
    (我使用的是python3.6.5)

    learning_log$ python -m venv ll_env
    learing_log$
    

    (如果不能成功的使用venv模块就要安装virtualenv)

    2、激活虚拟环境

    Linux系统:

    learning_log$ source ll_env/bin/activate
    (ll_env)learning_log$
    
    #windows系统
    learning_log$ ll_env\Scripts\activate
    (ll_env)learning_log$
    

    要停止使用虚拟环境可使用命令:deactivate

    3、安装Django

    因为在虚拟环境中,所有系统的命令都一样,不需要区分是linux还是Windows。

    (ll_env)learn_logs$ pip install Django==1.11(这里安装的是1.11版本)
    

    4、在Django中创建项目

    使用命令:django-admin.py startproject (工程名)来创建项目

    (ll_env)learning_log$ django-admin.py startproject learning_log .
    (ll_env)learning_log$ ls  
    #Windows为 learning_log$ dir
    (ll_env)learning_log$ ls learning_log
    #Windows为 learning_log$ dir learning_log
    

    这个命令的末尾的句点让新项目使用合适的目录结构,这样开发完成后可轻松地将应用程序部署到服务器,否则在部署应用程序的时候将遭遇一些配置问题,如果忘记了这个句点,可以将创建的文件和文件夹删除(ll_env除外),再重新运行这个命令。
    自动创建的manage.py文件是一个简单的程序,它接受命令并将其交给Django的相关部分去运行。
    其中 learning_log目录下包含了4个文件:


    __init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包
    settings.py: 该 Django 项目的设置/配置,指定Django如何与你的系统交互以及如何管理项目。
    urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。告诉Django应该创建哪些网页来响应浏览器请求。
    wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目,帮助Django提供它创建的文件。
    

    5、创建数据库

    在使用Django开发的项目中,我们不需手动在数据库中创建表,只需要执行Django自带的数据库迁移的命令,就可以把创建的模型在数据库生成对应的数据库表。

    (ll_env)learning_log$ python manage.py migrate  # 执行生成的迁移文件并同步到数据库
    

    首次执行migrate命令时,将让Django确保数据库与项目的当前状态匹配,在使用SQLite的新项目中首次执行这个命令时,Django将新建一个数据库。


    6、查看项目

    核实Django是否正确的创建了项目,执行命令:python manage.py runserver


    然后在浏览器中输入URl就可以看到下面的页面,这个是Django创建的,表示到目前为止一切都正常。
    注:如果出现错误消息:That port is already in use。请执行命令:python manage.py runserver 8001,让Django使用另一个窗口,如果也不行,一直重复并逐渐增大端口号,直到找到可用的端口。

    可以指定ip:
    python manage.py runserver ip:8000
    如果报错:Error: That IP address can't be assigned to.
    字面理解这句话的意思就是:该IP地址不能被分配。
    这种情况下,我们有三种解决方案:
    1、查看settings.py文件的ALLOWED_HOSTS是否配置了该ip地址,如果没有的话就加上。开发时,我建议把0.0.0.0 、127.0.0.1 、localhost这些都添加上去。
    2、如果使用的是服务器的话,请在服务器控制台的防火墙设置里,查看是否添加了8000这个端口(或者是您自己指定的启动端口)。
    3、如果上述两种方法均不可以,那么就: python manage.py runserver 0:8000
    没错,直接把启动的ip设置为0,然后问题就解决了,配置好防火墙之后,就可以直接用域名或者是服务器ip访问了。
    要关闭这个服务器的话用:Ctrl+C即可

    相关文章

      网友评论

          本文标题:python Web框架(1):Django入门

          本文链接:https://www.haomeiwen.com/subject/bxtunhtx.html